Python Crontab 覆盖以前的作业而不是创建一个新作业
Python Crontab Overwrites the previous job instead of creating a new one
在下面粘贴我的 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 都会覆盖之前的任务。我在这里遗漏了什么吗?
您在每个请求上重新创建 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']
在下面粘贴我的 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 都会覆盖之前的任务。我在这里遗漏了什么吗?
您在每个请求上重新创建 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']