【发布时间】:2019-03-25 04:48:03
【问题描述】:
我是 asyncio 模块的新手,请原谅我的糟糕尝试:
在我的代码中,我尝试先提交 100 个任务,然后在前 100 个任务完成后提交下一个 100 个任务,然后再提交下一个 100 个任务。
我应该怎么做才能让它工作?
# len(ad_accounts) = 1000 for example
new_loop = asyncio.new_event_loop()
asyncio.set_event_loop(new_loop)
task_list = [
asyncio.ensure_future(_handle_account(account)) for ad_account in ad_accounts[:100]
]
#just submit 100 tasks here once
new_loop.run_until_complete(asyncio.wait(task_list))
# then can I continuely submit next 100 tasks?
【问题讨论】:
-
您做得正确,但应该使用
get_event_loop而不是 new 和 set。你有什么问题? -
@MatrixTai,感谢您的回复,我只想一次运行1000个任务的一部分(例如100个),并在前100个任务完成后运行下100个任务..
-
@MatrixTai 这可行吗?
loop.run_until_complete(asyncio.wait(task_list_100)) loop.run_until_complete(asyncio.wait(task_list_200)) loop.run_until_complete(asyncio.wait(task_list_300))...
标签: python python-asyncio