Python Crontab覆盖以前的作业而不是创建新作业

时间:2015-09-08 23:44:21

标签: python cron centos crontab cron-task

在下面粘贴我的python代码:

from crontab import CronTab

tab = CronTab()
cmd1 = 'actual command'

cron_job = tab.new(cmd)
cron_job.minute.every(1)

cron_job.enable()
tab.write_to_user(user=True)

我根据应用上的一些用户输入设置这些cronjob。所以加班用户点击提交,我想在同一个crontab文件下创建一个新的cronjob(因为它是一个webapp,它在标准用户的上下文中运行)。

但似乎每次用户点击提交时,我的crontab都会覆盖上一个任务。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您在每个请求上重新创建tab变量的方式不会附加到相关的crontab;它会覆盖它。

如果您将user=True传递给CronTab构造函数,则可以附加到现有的crontab:

from crontab import CronTab

tab = CronTab(user=True)
cmd1 = 'echo Hello'
cmd2 = 'echo CronTab'

job1 = tab.new(cmd1)
job1.minute.every(1)
job1.enable()

job2 = tab.new(cmd2)
job2.hour.every(1)
job2.enable()

print list(tab.commands)  # ['echo Hello', 'echo CronTab']

# Explicitly specify we want the user's crontab:
tab2 = CronTab(user=True)

print list(tab2.commands)  # ['echo Hello', 'echo CronTab']
相关问题