jb.*_*jb. 10 django celery djcelery
我正在尝试设置djangocelery来存储数据库中的任务结果.
我设置:
CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'
Run Code Online (Sandbox Code Playgroud)
然后我同步并迁移了db(没有错误).
Celery正在工作,任务得到处理(我可以得到结果),但是管理员显示没有任务.在数据库中有两个表celery_taskmeta和djcelery_taskmeta.第一个是保持结果,第二个显示在管理员中.任何人都有洞察力如何正确配置它?
okm*_*okm 19
检查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)
Run Code Online (Sandbox Code Playgroud)
小智 10
正确答案的相关问题在这里.
你应该真的跑
python manage.py celery worker -E
Run Code Online (Sandbox Code Playgroud)
和
python manage.py celerycam
Run Code Online (Sandbox Code Playgroud)
之后,任务结果将显示在admin(Djcelery> Tasks)中
| 归档时间: |
|
| 查看次数: |
11198 次 |
| 最近记录: |