【问题标题】:Celery task bad return when using update_state使用 update_state 时 Celery 任务返回错误
【发布时间】:2013-12-29 02:59:36
【问题描述】:

我有一个 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 并获得相同的返回值(腌制对象)?

【问题讨论】:

    标签: django celery djcelery


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 2017-05-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 2011-09-27
      相关资源
      最近更新 更多