小编典典

在Python中,如何在特定时间之前使线程休眠?

python

我知道我可以通过以下方法使线程休眠特定时间:

time.sleep(NUM)

如何让线程在凌晨2点之前进入睡眠状态?我需要做数学以确定直到凌晨2点的秒数吗?还是有一些库函数?

(是的,我知道Windows中的cron和等效系统,但是我想在python中正常睡眠我的线程,而不依赖于外部刺激或过程信号。)


阅读 184

收藏
2020-12-20

共1个答案

小编典典

这是一个半屁股解决方案,它不考虑时钟抖动或时钟调整。请参阅注释以了解解决方法。

import time
import datetime

# if for some reason this script is still running
# after a year, we'll stop after 365 days
for i in xrange(0,365):
    # sleep until 2AM
    t = datetime.datetime.today()
    future = datetime.datetime(t.year,t.month,t.day,2,0)
    if t.hour >= 2:
        future += datetime.timedelta(days=1)
    time.sleep((future-t).total_seconds())

    # do 2AM stuff
2020-12-20