我遇到了post中描述的完全相同的问题,但答案根本没有帮助。简而言之,我使用Tivix django-cron,cron作业没有定期运行。
为了说明问题,以下cron作业类用于在运行runcrons
命令后每隔一分钟发送一次电子邮件。但事实上,它只发送一封电子邮件,而不是更多。这违背了cron的目的......我错过了什么?
class TestCron(CronJobBase):
schedule = Schedule(run_every_mins=1)
code = 'test_cron_philip'
def do(self):
send_mail('cron test', 'body is test body', 'coach_zhong@163.com',
['admin@dessert.webfactional.com'],fail_silently=False)
答案 0 :(得分:8)
是的,你错过了一些东西(“runcrons”不是背景deamon)。来自文档:
“现在每次运行管理命令python manage.py runcrons所有的crons将运行如果需要。取决于 应用程序管理命令可以从Unix crontab中调用 根据需要经常。每隔5分钟通常适用于我的大部分时间 应用。“
这意味着你必须在你的crontab中输入“runcrons”命令。
示例:强>
你有一些CronJob每30分钟做一次事。
要实现此功能,您必须编辑 crontab (linux,mac)或任务计划程序(windows)以便为每个人运行“python manage.py runcrons”,让说1分钟。
如果你开始运行,你的CronJob将每隔1分钟打一次并在必要时运行(每30分钟或你设定的任何值)。
希望这有帮助。