如何正确配置djcelery结果后端数据库(How to properly configure dj

2019-07-29 11:07发布

我试图建立djangocelery存储在DATABSE任务结果。

我设置:

CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'

然后我和同步迁移的数据库(没有错误)。

芹菜是工作和任务得到处理(我可以得到结果),但管理员显示没有任务。 在数据库中有两个表celery_taskmetadjcelery_taskmeta 。 第一个是拿着结果和第二个显示在管理员。 任何人有深入了解如何正确配置呢?

Answer 1:

检查的文档 ,当您使用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)


Answer 2:

用正确的答案相关的问题是在这里 。

你应该实际运行

python manage.py celery worker -E

python manage.py celerycam

之后任务的结果将显示在管理员(Djcelery>任务)



Answer 3:

移动配置更新如
app.conf.update(CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend')

到文件celery.py结束奏效了我。



文章来源: How to properly configure djcelery results backend to database