2014-09-18 65 views
1

我正在编写一个作为守护进程运行的脚本。每12小时,它会运行一些工作。在Python中安排重复事件

这是一个很好的做法,做下面的代码?我正在使用Python 2.7

import sched 

scheduler = sched.scheduler(time.time, time.sleep) 
scheduler.enter(0, 1, update,()) 

while True: 
    scheduler.run() 
    scheduler.enter(12*60*60, 1, update,()) 

还有其他更好的选择吗?

+0

从cron调用你的程序way way better – KevinDTimm 2014-09-18 21:32:55

+0

你的守护进程是每12小时工作吗?如果是这样,像其他人所说的那样考虑cron。但是,如果你的守护进程也是一台网络服务器,或者其他的必须运行,或许cron并不是你的最佳选择。 – 2014-09-18 21:42:26

+0

我其实很想用cron作这个。但我有一些限制: 1.工作“更新”必须以root身份运行。 2.我没有权限以root身份启动我的cron作业。 – cli130 2014-09-18 22:19:12

回答

0

这不一定是错误的做法,但它意味着有一个python实例每天24小时耗用资源。你也冒着中断(停止)你的程序的风险,并且它是无效的。

也许你可能investigate the cron service?把这个过程添加到你的crontab中会更加健壮。

+0

cron绝对是一个更好的主意。但是1.工作“更新”必须以root身份运行。 2.我没有权限以root身份启动我的cron作业。 – cli130 2014-09-18 22:23:25

+0

@ cli130令人惊讶:你如何让你的python脚本以root身份运行? – deau 2014-09-19 04:41:36

+0

鼓励cronservices是一个不错的选择,但可能会产生误导,特别是当某些重复性任务需要保留在应用程序的工作流程中时。最好是处理你的干扰,而不是写一个cron,并说“不一定是坏习惯”,这会让我误以为是错误的 – 2016-02-11 01:53:53