gpt4 book ai didi

python - 异步与 Django

转载 作者:行者123 更新时间:2023-11-28 22:31:25 28 4
gpt4 key购买 nike

我正在尝试在我的 Django 后处理中使用 asyncio,例如:

query : # a query to my model
tasks = []
for record in query:
tasks.append(do_something_with_google_calendar(record))

loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

但我只是在执行时出错:

loop = asyncio.get_event_loop()

RuntimeError: There is no current event loop in thread 'Thread-17'.

有什么想法吗?

提前致谢

最佳答案

您的原始代码不会工作,因为 get_event_loop() 方法只是 get_event_loop_policy().get_event_loop() 的快捷方式,它仅为主线程自动创建和返回事件循环。为了使其正常工作,您需要为每个当前线程上下文显式创建和设置新的事件循环:

query : # a query to my model
tasks = []
for record in query:
tasks.append(do_something_with_google_calendar(record))

loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

您可以阅读更多有关此内容的信息 here .

关于python - 异步与 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41594266/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com