python芹菜-如何在运行时将CELERYBEAT_调度任务添加到工作进程?
我创建了一个芹菜工人,其中有一个芹菜节拍计划任务,以5秒的时间间隔运行。如何在不停止的情况下,将另一个beat任务动态添加到芹菜工人 范例python芹菜-如何在运行时将CELERYBEAT_调度任务添加到工作进程?,python,celery,scheduler,celerybeat,djcelery,Python,Celery,Scheduler,Celerybeat,Djcelery,我创建了一个芹菜工人,其中有一个芹菜节拍计划任务,以5秒的时间间隔运行。如何在不停止的情况下,将另一个beat任务动态添加到芹菜工人 范例 app.conf.update( 芹菜任务结果过期=3600, 芹菜时区='UTC', CELERYBEAT_时间表={ “长时间运行5秒”:{ “任务”:“测试项目任务.测试”, “计划”:时间增量(秒=5), “args”:(16,) } } ) 通过上面的配置,我能够成功地以节拍模式运行芹菜工人 现在我需要动态添加以下节拍时间表: 'long-run
app.conf.update(
芹菜任务结果过期=3600,
芹菜时区='UTC',
CELERYBEAT_时间表={
“长时间运行5秒”:{
“任务”:“测试项目任务.测试”,
“计划”:时间增量(秒=5),
“args”:(16,)
}
}
)
通过上面的配置,我能够成功地以节拍模式运行芹菜工人
现在我需要动态添加以下节拍时间表:
'long-run-2-secs':{
“任务”:“测试项目任务.测试”,
“计划”:时间增量(秒=2),
“args”:(14,)},
谢谢我一直在为同样的问题寻找解决方案。我很惊讶你得等芹菜4.0版。动态任务调度目前仅在开发版本中受支持:一种可能的方法是将任务存储在数据库中,并动态添加和删除任务。您可以使用数据库支持的芹菜节拍调度程序来完成相同的任务。参考PeriodictTask数据库存储定期任务。您可以使用数据库命令(Django-ORM)操作周期性任务 这就是我处理动态任务(动态创建和停止任务)的方式 每当更新周期时,此表中的计数器也会被激活 递增,指示芹菜节拍服务重新加载 从数据库中选择时间表 因此,你不需要重新开始或停止节拍。 如果要在满足特定条件时停止任务,则
periodic_task = PeriodicTask.objects.get(name='run for every 10 min')
periodic_task.enabled = False
periodic_task.save()
如果enabled为False,则周期性任务变为空闲。您可以通过使enable=True
再次将其激活
如果您不再需要该任务,则只需删除该条目即可
periodic_task = PeriodicTask.objects.get(name='run for every 10 min')
periodic_task.enabled = False
periodic_task.save()