使用TaskSetMeta模型在django数据库中保存芹菜组任务的结果

时间:2014-05-16 21:23:11

标签: django celery django-celery

我正在创建一组任务并将它们添加到队列中。

def process(self, request, queryset):
    tasks = group([
        mytask.s(user_id=obj.id)
        for obj in list(queryset)
    ])
    result = tasks.applay_async()

每个单独任务的结果根据设置保存在模型TaskMeta的django数据库中:

CELERY_TASK_SERIALIZER='json'
CELERY_RESULT_SERIALIZER='json'
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'

但是,我看不到模型TaskSetMeta的任何新行。

此模型是否仅适用于celery.task.sets.TaskSet对象,目前已弃用?

1 个答案:

答案 0 :(得分:0)

在django-celery中,不会自动保存group()和TaskSetMeta的结果,就像单个任务和TaskMeta一样。要在TaskSetMeta创建记录以创建群组任务,您必须在结尾处致电.save()

def process(self, request, queryset):
    tasks = group([
        mytask.s(user_id=obj.id)
        for obj in list(queryset)
    ])
    result = tasks.apply_async()
    result.save()