我有两个定时器驱动的python应用程序。这些应用程序以固定的时间间隔执行。计时器驱动的代码是这样驱动的:
while True:
do_something()
sleep(10)
我有几个问题:
- 应用程序需要定期执行。上述方式正确吗
- 是否真的需要守护这类应用程序,或者在upstart等工具的帮助下在后台运行就可以了?这两种方法有何不同
- 如果我们在一台机器上有多个应用程序(考虑多核cpu),那么这些应用程序将如何在执行过程中获得系统资源
- 如果cpu忙于执行其他任务,同时这些应用程序的计时器到期,会发生什么?运行在cpu上的作业会被抢占还是取决于作业的性质。因此,如果该作业是非抢占式的,我的理解是,该作业将排队等待处理。如果是这种情况,那么如何使应用程序在每个确定的时间间隔运行
芹菜是延迟和周期性任务的行业标准。
使用芹菜的好处是:
- 您可以控制和防止任务重叠
- 您的任务由代码管理,而不是由操作系统管理
- 对于周期性任务,您可以查看Celery周期性任务