簡體   English   中英

asyncio,已棄用的 run_forever 的替代品

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM