我正在尝试设置djangocelery在数据库中存储任务结果。
我设置了:
CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'然后我同步并迁移了数据库(没有错误)。
Celery正在工作,任务也得到了处理(我可以得到结果),但admin显示没有任务。数据库中有两个表celery_taskmeta和djcelery_taskmeta。第一个是保存结果,第二个是在管理中显示。有谁知道如何正确配置它吗?
发布于 2012-05-20 21:48:06
检查the doc,当您使用djcelery时,设置CELERY_RESULT_BACKEND="database",或者甚至不要费心编写这行代码,因为djcelery默认设置它。
结果存储在celery_taskmeta表中,请自行向管理员注册djcelery.models.TaskMeta:
# in some admin.py, which is contained by an app after `djcelery` in `INSTALLED_APPS`
# or directly in djcelery/admin.py
from djcelery.models import TaskMeta
class TaskMetaAdmin(admin.ModelAdmin):
readonly_fields = ('result',)
admin.site.register(TaskMeta, TaskMetaAdmin)发布于 2013-08-03 16:11:35
与正确答案相关的问题是here。
实际上,你应该运行
python manage.py celery worker -E和
python manage.py celerycam之后,任务结果将显示在admin中(Djcelery > Tasks)
发布于 2015-01-13 11:45:30
移动配置更新,例如
app.conf.update(CELERY_RESULT_BACKEND='djcelery.backends.database.DatabaseBackend')
在文件的末尾,celery.py为我做了这件事。
https://stackoverflow.com/questions/10672987
复制相似问题