from twisted.internet.defer import inlineCallbacks, DeferredQueue
@inlineCallbacks
def worker(queue):
while 1:
url = yield queue.get() # wait for a url from the queue
if url is None: # insert None into the queue to kill workers
queue.put(None)
return # done
data = yield download(url) # download the file
process(data) # do stuff with it
queue = DeferredQueue() # your queue
# make workers
MAX = 20
workers = [worker(queue) for _ in range(MAX)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3793 次 |
| 最近记录: |