Python 节目通常是如何安排的 运行?
How are scheduled Python programs typically ran?
假设我想 运行 每天上午 10 点执行一次某些功能。
- 我是否只是将脚本 运行ning 永远留在后台?
- 如果我不想一次将笔记本电脑 open/on 存放很多天怎么办?
- 进程会不会吃掉很多CPU?
如果我使用 cron/launchd 与以编程方式安排,这些问题的答案是否不同?谢谢!
这个问题的答案可能取决于您的平台、可用设施和您的特定项目需求。
首先让我解决系统资源问题。如果您想使用最少的资源,只需调用 time.sleep(NNN)
,其中 NNN 是距离下一个 10AM 实例的秒数。 time.sleep
将暂停您的程序的执行并且应该消耗零(或几乎零资源)。 python GC 可能会定期唤醒并进行维护,但它的工作应该可以忽略不计。
如果您使用的是 Unix,cron
是安排未来任务的典型工具。它实现了一个相当高效的 Franta–Maly 事件列表管理器。它将根据 下一个 将要发生的任务列表来确定,然后一直睡到那时。
在 Windows,您拥有计划管理器。这是一个复杂的弗兰肯斯坦——但它非常灵活,可以处理 运行 由于停电和笔记本电脑休眠等原因而错过的事件...
假设我想 运行 每天上午 10 点执行一次某些功能。
- 我是否只是将脚本 运行ning 永远留在后台?
- 如果我不想一次将笔记本电脑 open/on 存放很多天怎么办?
- 进程会不会吃掉很多CPU?
如果我使用 cron/launchd 与以编程方式安排,这些问题的答案是否不同?谢谢!
这个问题的答案可能取决于您的平台、可用设施和您的特定项目需求。
首先让我解决系统资源问题。如果您想使用最少的资源,只需调用 time.sleep(NNN)
,其中 NNN 是距离下一个 10AM 实例的秒数。 time.sleep
将暂停您的程序的执行并且应该消耗零(或几乎零资源)。 python GC 可能会定期唤醒并进行维护,但它的工作应该可以忽略不计。
如果您使用的是 Unix,cron
是安排未来任务的典型工具。它实现了一个相当高效的 Franta–Maly 事件列表管理器。它将根据 下一个 将要发生的任务列表来确定,然后一直睡到那时。
在 Windows,您拥有计划管理器。这是一个复杂的弗兰肯斯坦——但它非常灵活,可以处理 运行 由于停电和笔记本电脑休眠等原因而错过的事件...