在Python中在datetime调用函数

2024-04-25 16:41:05 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,在datetime调用函数的好方法是什么?在

我知道有三种方法:

  1. “我们到了吗?!”{已通过检查) 这显然很糟糕。只有间隔时间较短时,它才能精确,这会导致效率低下。

  2. 睡个好觉(time.sleep(timedelta.seconds)
    这是更好的,但我不喜欢让一根线长时间睡眠的想法,例如如果是6个月,如果这是日期。

  3. 以上两者的混合体;如果间隔时间不足,就睡一觉。如果出现上述情况,请隔一段时间睡觉,以防长时间睡眠。
    我认为这是最好的三个当你想到长时间睡眠,但间隔似乎不好。

你还有别的办法吗?标准库中有什么可以帮助我在datetime调用场景后面的函数吗?在

编辑:
我问这个问题是因为我实际上已经用Python开发了自己的Cron实现。唯一的问题是我不能决定我的代码应该如何等待下一次出现。我的实现和最初的Cron之间的一个区别是对秒的支持。所以,仅仅睡一个最短的时间间隔(在我的例子中是1秒)太低效了。在

我现在意识到这个问题也许可以改成“Cron是怎么做到的?”i、 e.“Cron如何检查日期是否已过?它是持续运行还是每分钟都有一个进程运行?”。我认为是后者,如果间隔时间为1秒,则效率低下。
另一个不同之处是,我的代码只读取crontab一次,然后根据模式计算下一次出现的确切日期(datetime对象)。而Cron,我假设,只是每分钟检查crontab中的任何模式是否与当前时间匹配。在

如果没有别的办法的话,我会坚持“混合动力”的方式。在


Tags: 方法代码datetime间隔time时间模式sleep
3条回答

如果像您所说的,这可能需要六个月的时间,那么一个chron作业可能比让python程序一直运行更合适。在

我使用gobject主循环,但是任何具有事件循环的库都应该具有这种能力。在

使用cron作业可能是个好主意。在

可以使用以下命令编辑cron表:crontab-e 再加上这样一行(每20分钟调用一次)

*/20****/usr/bin/python/home/toto/my_脚本.py在

相关问题 更多 >