/ / La tarea de apio devuelve mal cuando se usa update_state - django, celery, djcelery

La tarea de apio no funciona correctamente cuando se usa update_state - django, apio, djcelery

Tengo una tarea de apio que actualiza su estado varias veces mientras se ejecuta con:

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

Cuando esta tarea regrese:

return row  # row is a Django model instance

El valor de retorno que obtengo:

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

es solo la identificación del objeto como una cadena, no el objeto encurtido en sí.

Si elimino las instrucciones update_state, obtengo el objeto encurtido correcto en el meta de la tarea (AsyncResult.result)

¿Cómo puedo usar update_state y obtener el mismo valor de retorno (objeto encurtido)?

Respuestas

0 para la respuesta № 1

Me sorprende que puedas conseguir un django en escabecheinstancia del modelo, teniendo en cuenta que pickle solo admite primitivas de python. ¿Está absolutamente seguro de que alguna vez obtendrá la instancia del modelo django como resultado en escabeche? tal vez no va a través del apio y no está en escabeche?

vea [esta respuesta SO] para obtener más información acerca de la preparación de instancias de modelo django1.