我正在尝试设置djangocelery以将任务结果存储在数据库中。

我设置:

CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'

然后,我同步并迁移了数据库(没有错误)。

celery 正在工作,任务已得到处理(我可以得到结果),但是管理员显示没有任务。数据库中有两个表celery_taskmetadjcelery_taskmeta。第一个保存结果,第二个显示在admin中。任何人都有见识如何正确配置它?

最佳答案

检查the doc,当您使用djcelery时,设置CELERY_RESULT_BACKEND="database"或什至不用费心编写此行,因为djcelery默认设置它。

结果存储在celery_taskmeta表中,您应该自己将djcelery.models.TaskMeta注册为admin:

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

关于django - 如何正确配置djcelery结果后端到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10672987/

10-13 00:11