芹菜/Django:获取周期性任务执行的结果



我有一个Django 1.7项目使用芹菜(最新)。我有一个REST API,它接收一些参数,并以编程方式创建一个PeriodicTask。对于测试,我使用一段秒:

periodic_task, _= PeriodicTask.objects.get_or_create(name=task_label, task=task_name, interval=interval_schedule)

我在某处存储了对这个任务的引用。我开始打芹菜:

python manage.py celery beat

和一个worker:

python manage.py celery worker --loglevel=info

和我的任务运行,正如我在worker的输出中看到的。

我设置了结果后端:

CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
有了它,我可以使用TaskMeta模型检查任务结果。那里的对象包含task_id(如果我用.delay()或.apply_async()调用任务,我会得到相同的对象),状态,结果,一切,漂亮。

然而,我找不到PeriodicTask对象和TaskMeta之间的连接。

PeriodicTask有一个task属性,但它只是任务名称/路径。id只是一个连续的数字,而不是来自TaskMeta的task_id,我真的需要能够找到作为PeriodicTaskTaskMeta执行的任务,所以我可以提供一些对状态的监控。TaskMeta没有任何其他值可以让我识别哪个任务运行(因为我将有几个),所以至少我可以给出最后一次执行的状态。

我已经检查了所有的芹菜文档和这里,但到目前为止没有解决方案。

任何帮助都非常感谢。

谢谢

您可以使用命令行

运行service来监视已执行的任务。
    python manage.py celerycam --frequency=10.0

详情见:http://www.lexev.org/en/2014/django-celery-setup/

最新更新