add async info
This commit is contained in:
37
notes.md
37
notes.md
@@ -17,3 +17,40 @@
|
|||||||
* async
|
* async
|
||||||
* better exception handling
|
* better exception handling
|
||||||
* randomise output filename
|
* randomise output filename
|
||||||
|
|
||||||
|
### Async bits
|
||||||
|
|
||||||
|
in `__main__`:
|
||||||
|
|
||||||
|
```python
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
try:
|
||||||
|
loop.run_until_complete(main())
|
||||||
|
finally:
|
||||||
|
loop.close()
|
||||||
|
```
|
||||||
|
|
||||||
|
* initialises loop and runs it to completion
|
||||||
|
* needs to handle errors (try/except/finally)
|
||||||
|
|
||||||
|
```python
|
||||||
|
async def run(args=None):
|
||||||
|
tasks = []
|
||||||
|
|
||||||
|
for url in pool:
|
||||||
|
tasks.append(url)
|
||||||
|
# for i in range(10):
|
||||||
|
# tasks.append(asyncio.ensure_future(myCoroutine(i)))
|
||||||
|
|
||||||
|
# gather completed tasks
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
```
|
||||||
|
|
||||||
|
Getting the contents of the page needs to be async too
|
||||||
|
|
||||||
|
```python
|
||||||
|
async def get_source():
|
||||||
|
blah
|
||||||
|
blah
|
||||||
|
await urlopen(url)
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user