[英]asyncio, alternatives to deprecated run_forever
我正在使用 aiohttp 創建一個 web 服務器,這是我用來啟動它的代碼:
loop = asyncio.get_event_loop()
loop.create_task(main())
loop.run_forever()
我正在使用 run_forever 來保持服務器啟動並且在創建后不關閉它。 不幸的是我現在收到這個警告:
/Users/thomas/workspace/eykar/eykache2/eykache/__main__.py:17: DeprecationWarning: There is no current event loop
loop = asyncio.get_event_loop()
根據文檔,我應該考慮使用 asyncio.run,但我不知道如何讓我的程序繼續運行。
run_forever
未棄用。 使用它沒有錯。 然而,不推薦使用的是在沒有運行時調用get_event_loop
並期望它為您創建一個。 在未來的某個時候,這將停止這樣做。 相反,您需要制作自己的循環。
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
您也可以將所有這些替換為asyncio.run(main())
和main
中的while True
循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.