0

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

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 作为字符串,而不是腌制对象本身。

如果我删除 update_state 语句,我会在任务的元 (AsyncResult.result) 中得到正确的腌制对象

如何使用 update_state 并获得相同的返回值(腌制对象)?

4

1 回答 1

0

我很惊讶你可以得到一个腌制的 django 模型实例,考虑到腌制只支持 python 原语。您绝对确定您将 django 模型实例作为腌制结果吗?也许它不是通过芹菜去的,也不是腌制的?

有关酸洗 django 模型实例1的更多信息,请参见 [this SO answer] 。

于 2013-12-27T01:02:32.163 回答