【发布时间】:2011-01-03 02:51:14
【问题描述】:
我知道我可以通过以下方式使线程休眠一段特定的时间:
time.sleep(NUM)
如何让线程休眠到凌晨 2 点?我必须做数学来确定直到凌晨 2 点的秒数吗?还是有一些库函数?
(是的,我知道 Windows 中的 cron 和等效系统,但我想在 python 中正确休眠我的线程,而不是依赖外部刺激或进程信号。)
【问题讨论】:
-
我有这个监控 python 脚本,它在许多不同的机器上连续监听套接字。我只想唤醒那个 python 脚本中的一个线程。我不想在启动此脚本的每台机器上都使用 cron。
-
一般说“在时间X唤醒”的问题是你不能保证内核会在那个时候唤醒线程。计算机可能已关闭、休眠或加载了无法为您节省周期的非常密集的操作。这就是为什么大多数实现不提供这种类型的睡眠。在这种情况下,以秒为单位计算差异可能是最好的方法。
-
这不是关键任务。如果它只是隔天运行一次,那没关系。它将运行的机器是服务器场中的服务器,因此它们始终处于开启状态并运行多个作业。此外,它不必正好是凌晨 2 点。我只是想让它在大多数人睡着的时候运行。
-
当然。我可以使用
time.gmtime()来获取格林威治标准时间。我只关心time.localtime()。我不必跨时区协调——无论是用户本地的。 -
我为我的项目制作的东西...hastebin.com/yufahaciji.py ...抱歉在某些函数中缺少文档字符串耸耸肩
标签: python