计划的Python程序通常如何运行?

问题描述:

假设我想在上午10点每天运行一次该功能。计划的Python程序通常如何运行?

  • 难道我只是将脚本永远保持在后台运行?
  • 如果我不想让我的笔记本电脑每次打开/关闭多少天,该怎么办?
  • 这个过程是否会吃掉很多CPU?

如果我以编程方式使用cron/launchd与调度,这些问题的答案会不同吗?谢谢!

+5

对于类Unix系统,您可以使用类似于[cron](https:// en.wikipedia.org/wiki/Cron)或[systemd计时器](https://www.freedesktop.org/software/systemd/man/systemd.timer.html)。对于Windows,我确定有类似的调度程序。 – larsks

+0

CPU问题的答案确实取决于你的脚本正在做什么。 –

+0

@ cricket_007,我猜OP意味着如果调度是通过'time.sleep(24 * 60 * 60)'来实现的,程序是否会消耗CPU时间。 – kay

此问题的答案可能取决于您的平台,可用设施和您的特定项目需求。

首先让我解决系统资源问题。如果您想使用最少的资源,只需拨打time.sleep(NNN),其中NNN是直到下一个10AM的秒数。 time.sleep将暂停执行你的程序,并应该消耗零(或几乎为零的资源)。蟒蛇GC可能会周期性地醒来并进行维护,但它的工作应该可以忽略不计。

如果您使用的是Unix,cron是安排未来任务的典型工具。它实现了一个相当高效的Franta-Maly事件列表管理器。它将根据将发生的任务列表确定下一个,然后休眠。

在Windows上,您具有计划管理器。这是一个复杂的科学怪人 - 但它非常灵活,可以处理由于停电和笔记本电脑休眠等造成的错过事件...