首页 > 解决方案 > asyncio.sleep 不会让我的循环进入睡眠状态?

问题描述

我需要一个每天都会完成的任务,因为对于这个特定的机器人,我使用的是 discord.py,我在 3.6 上,并且有很多我不想停止的 on_message 和 on_reaction,所以我m 不使用 time.sleep()。有人建议我使用带有循环的 asyncio.sleep,因为我真的不想使用线程。我试着用它来看看它是如何工作的,并做了一个简单的小循环。问题是,即使我试图让它进入睡眠状态,它仍然会打印出来(图片提供)!http://prntscr.com/n8ar0u

这是我写的:

async def daily_task():
    i = 1
    while i==1:
        print('I am here to steal your women')
        asyncio.sleep(300000000000)


asyncio.get_event_loop().run_until_complete(daily_task())

标签: pythonpython-3.xpython-asyncio

解决方案


你需要await:)sleep

await asyncio.sleep(seconds)

请参阅asyncio.sleep文档。


推荐阅读