在下面粘贴我的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都会覆盖上一个任务。我在这里错过了什么吗?
答案 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']