使用update_state时,Celery任务返回错误

时间:2013-12-11 08:25:16

标签: django celery djcelery

我有一个芹菜任务,它在运行时多次更新状态:

current_task.update_state(state='STARTED', meta={'doing': "some message"},)

当此任务返回时:

return row  # row is a Django model instance

我得到的返回值:

>> res = task_above.delay()
>> res.result
u'16'

只是对象的id作为字符串,而不是pickle对象本身。

如果我删除update_state语句,我会在任务的元数组中获得正确的pickle对象(AsyncResult.result)

如何使用update_state并获得相同的返回值(pickle object)?

1 个答案:

答案 0 :(得分:0)

我很惊讶你可以得到一个腌制的django模型实例,因为pickle只支持python原语。您是否确定您将django模型实例作为腌制结果?也许它不会通过芹菜而且它没有被腌制?

请参阅[此SO答案]了解有关酸洗django模型实例1的更多信息。