Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python芹菜-如何在运行时将CELERYBEAT_调度任务添加到工作进程?_Python_Celery_Scheduler_Celerybeat_Djcelery - Fatal编程技术网

python芹菜-如何在运行时将CELERYBEAT_调度任务添加到工作进程?

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

我创建了一个芹菜工人,其中有一个芹菜节拍计划任务,以5秒的时间间隔运行。如何在不停止的情况下,将另一个beat任务动态添加到芹菜工人

范例

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()