celery任务将python列表转换为字符串。如何避免呢?

时间:2019-02-14 05:28:10

标签: django django-templates celery djcelery

我有一封电子邮件发送在celery共享任务中运行的任务。我将python列表传递到html模板中。但是芹菜将此列表转换为字符串。但没有使用芹菜任务,我得到了实际的清单。

1 个答案:

答案 0 :(得分:0)

docs中,您可以阅读:

  

在客户端和工作人员之间传输的数据需要进行序列化,因此Celery中的每条消息都有一个content_type标头,用于描述用于对其进行编码的序列化方法。

     

默认的序列化器为 JSON ,但是您可以使用task_serializer设置更改此设置,也可以针对每个任务甚至每个消息进行更改。

作为序列化程序,您也可以使用pickleyamlmsgpack,但是必须对数据进行序列化。

结论:

序列化是强制性的,请记住,任务将使用JSON进行通信(这就是您的情况),并在使用数据之前对数据进行反序列化。