time.sleep() 或调度脚本。哪种方法更好?
time.sleep() or scheduling script. Which one is better approach?
我有一个小脚本,我想每 15 分钟 运行。我可以通过两种方式实现它:
通过将整个代码放入 while 循环 while True:
并在结尾 time.sleep(900)
.
通过将作业调度到 运行 脚本后每 15 分钟执行一次。
两者都可以正常工作,但我不确定脚本是否让资源在休眠时保持忙碌。
请提出建议....哪种方法更好?
调度更稳定,python脚本更灵活。
如果你正在调试或者监控一个软件,比如浏览网页,或者经常修改脚本,第一种方式比较好。必要时你可以轻松杀死它。直觉上我喜欢这个因为 15 分钟很短所以我猜你不会 运行 它 long-term.
如果您正在制作像 "periodic backup" 这样的日程表或记录或检查某些内容,则第二种方法更好,因为一旦设置就不需要管理它。
我认为像 Linux 上的 cron
这样的调度系统(不知道 Windows,但我希望那里有类似的情况)是可行的方法,因为它的众多优点:
- 你可以依靠它,它是一个强大而成熟的系统
- 它每次都会启动一个新进程,从而节省资源并保护系统免受长 运行 程序中可能的内存或文件描述符泄漏的影响
- 它通过邮件发送输出并向所有者报告崩溃
- 您不必将进程置于后台
缺点:
- 如果您需要记住运行之间的状态,则必须将其保存到文件中
我有一个小脚本,我想每 15 分钟 运行。我可以通过两种方式实现它:
通过将整个代码放入 while 循环
while True:
并在结尾time.sleep(900)
.通过将作业调度到 运行 脚本后每 15 分钟执行一次。
两者都可以正常工作,但我不确定脚本是否让资源在休眠时保持忙碌。
请提出建议....哪种方法更好?
调度更稳定,python脚本更灵活。
如果你正在调试或者监控一个软件,比如浏览网页,或者经常修改脚本,第一种方式比较好。必要时你可以轻松杀死它。直觉上我喜欢这个因为 15 分钟很短所以我猜你不会 运行 它 long-term.
如果您正在制作像 "periodic backup" 这样的日程表或记录或检查某些内容,则第二种方法更好,因为一旦设置就不需要管理它。
我认为像 Linux 上的 cron
这样的调度系统(不知道 Windows,但我希望那里有类似的情况)是可行的方法,因为它的众多优点:
- 你可以依靠它,它是一个强大而成熟的系统
- 它每次都会启动一个新进程,从而节省资源并保护系统免受长 运行 程序中可能的内存或文件描述符泄漏的影响
- 它通过邮件发送输出并向所有者报告崩溃
- 您不必将进程置于后台
缺点:
- 如果您需要记住运行之间的状态,则必须将其保存到文件中