我正在升级的脚本使用
asyncio.get_event_loop()
,它自 Python 3.12 起已弃用。
Asyncio 文档建议使用
asyncio.get_running_loop()
,它被认为更稳定,因为它的输出更简单且更可预测。但是,get_running_loop()
要求循环正在运行,并且只能从协程或回调中调用 - 这与我的函数结构不兼容。
是否有另一个 asyncio 替代品来获取事件循环?
通常人们只想调用
asyncio.run
- 来获取在当前线程中启动的程序的异步部分。
如果在调用
run
之前需要引用循环(例如,为了从同步代码创建 future 和任务),可以先调用 asyncio.new_event_loop()
,然后调用 loop.run_until_complete()
- 在同一过程中在 .get_event_loop()
存在之前与 asyncio.run
使用的模式。