Python 如何生成一个每24小时执行一次的函数,而不在该时间停止整个程序。sleep()?

Python 如何生成一个每24小时执行一次的函数,而不在该时间停止整个程序。sleep()?,python,discord.py,Python,Discord.py,我有一个Discord机器人,它将用户的截止日期存储在消息通道中。截止日期结束后,我希望机器人通知版主,以便他们能够处理它 除此之外,机器人的一切都已完成。我对这个问题的想法是,只要有一个功能,每24小时检查一次频道的截止日期,找到与当前日期相同的日期,并取出用户ID(也存储在所述消息中)。 我对这个问题的其他解决方案持开放态度 我读了很多,在谷歌上搜索了很多。至少在我看来,time.sleep()和schedule。每一个都会在这段时间内停止我的整个程序,但也许我在计划方面错了,因为我试图在代

我有一个Discord机器人,它将用户的截止日期存储在消息通道中。截止日期结束后,我希望机器人通知版主,以便他们能够处理它

除此之外,机器人的一切都已完成。我对这个问题的想法是,只要有一个功能,每24小时检查一次频道的截止日期,找到与当前日期相同的日期,并取出用户ID(也存储在所述消息中)。 我对这个问题的其他解决方案持开放态度

我读了很多,在谷歌上搜索了很多。至少在我看来,
time.sleep()
schedule。每一个
都会在这段时间内停止我的整个程序,但也许我在计划方面错了,因为我试图在代码中实现它,但我不知道如何让它工作。我在这里只有一周的Python经验,请耐心等待

如果有帮助的话,这里几乎是我的全部代码(当然没有bot令牌部分)


线程将允许您“同时”处理两件事(或更多…)。当一个线程休眠时,另一个线程可以执行异步python的“其余”操作,当需要非阻塞休眠时,可以使用方法
asyncio.sleep(n)
,n是希望该方法休眠的秒数。因此,每24小时休眠一次的基本异步方法如下所示:

async def daily_task():
    print('This method will NOT block')
    await asyncio.sleep(24*60*60)

编辑:感谢Benjin,他指出我忘记了等待睡眠。

正如我所说,我只有一周的python经验,所以请详细说明线程的含义。您可以分享源代码片段吗?所有代码您想过使用系统作业调度吗,也就是说,
cron
?您可以使用cron api来执行此操作,而无需在python/24中进行监视**我是否必须继续调用此类函数才能使其工作?编辑:我很笨,忘了运行它。lolI在3.6中,如果我升级到3.7,那么我的代码就没有工作了吗?运行?你可以做
asyncio.get\u event\u loop()。运行直到完成(async\u function\u name())
对于python
3.6
asyncio。睡眠是一个协同程序,需要等待<代码>等待异步睡眠(24*60*60)
async def daily_task():
    print('This method will NOT block')
    await asyncio.sleep(24*60*60)