在 Django 中手动运行芹菜计划任务



在我的 Django 设置文件中,我有如下所示的内容:

CELERY_BEAT_SCHEDULE = {
'my_task': {
'task': 'tasks.my_task',
'schedule': crontab(hour=4, minute=0),
'kwargs': {'interval': 'hour', 'features': [], 'max_samples': 200,
'training_days': 90, 'force_update': False},
'options': {'queue': 'my_queue'},
},
}

我想做的是能够手动异步启动此任务。我知道的一种方法是:

task = settings.CELERY_BEAT_SCHEDULE['my_task']
tasks.my_task.apply_async(kwargs=task['kwargs'], queue=task['options']['queue'])

虽然这有效,但对于我的口味来说有点笨拙,我正在寻找更好的方法。

有没有办法找到芹菜对CELERY_BEAT_SCHEDULE中定义的计划任务的解释并从那里手动运行它们?


到目前为止,我发现的最接近的是celery.task.controlinspect().registered_tasks(),但这似乎更多地与工人有关,而不是计划的任务。

我 95% 确定我错过了一个重要的方面,但我会试一试。

如果你想异步运行一个特定的任务,但自己启动它,你能不能只做your_task.delay()

如果要手动运行所有计划任务,只需从django.conf.settings解析CELERY_BEAT_SCHEDULE,导入每个任务并在其上运行.delay()

编辑:你似乎在你的例子中做了类似的事情。你能说出为什么你不喜欢这个解决方案吗?

相关内容

  • 没有找到相关文章

最新更新