1

我有一个使用 Celery 3.0.23 和 RabbitMQ 3.1.5 的 Django 1.5.1 webapp。和 sqlite3。
我可以使用简单的提交作业result = status.tasks.mymethod.delay(parameter),所有任务都正确执行:

[2013-09-30 17:04:11,369: INFO/MainProcess] Got task from broker: status.tasks.prova[a22bf0b9-0d5b-4ce5-967a-750f679f40be]
[2013-09-30 17:04:11,566: INFO/MainProcess] Task status.tasks.mymethod[a22bf0b9-0d5b-4ce5-967a-750f679f40be] succeeded in 0.194540023804s: u'Done'

我想在页面中显示最近提交的 10 个作业及其状态。Django 中有没有办法获取这些对象?celery_taskmeta我在数据库(和)中看到了几个表,celery_taskmeta_2ff6b945并尝试了对对象的一些访问,但 Django 总是显示一个AttributeError页面。
从 Django 访问 Celery 结果的正确方法是什么?
正在做

cel = celery.status.tasks.get(None)  
cel = status.tasks.all()

不起作用,导致前面提到的AttributeError。(status是我的应用程序的名称)

编辑:我确信任务已保存,正如这个小教程所说:
默认情况下,django-celery 将此状态存储在 Django 数据库中。您可以考虑选择替代结果后端或一起禁用状态(请参阅结果后端)。
以下链接仅提供有关如何设置数据库连接而不是如何检索结果的参考。

4

1 回答 1

0

尝试这个:

from djcelery.models import TaskMeta

TaskMeta.objects.all()
于 2013-09-30T16:40:59.653 回答