【发布时间】:2019-07-08 02:04:42
【问题描述】:
我有一个在 celery 共享任务中运行的电子邮件发送任务。我正在将一个 python 列表传递给 html 模板。但 celery 将此列表转换为字符串。但不使用芹菜任务,我得到了实际的清单。
【问题讨论】:
-
您是否介意提供一些代码,我们可以查看并了解您的问题。谢谢
标签: django django-templates celery djcelery
我有一个在 celery 共享任务中运行的电子邮件发送任务。我正在将一个 python 列表传递给 html 模板。但 celery 将此列表转换为字符串。但不使用芹菜任务,我得到了实际的清单。
【问题讨论】:
标签: django django-templates celery djcelery
从docs你可以阅读:
客户端和worker之间传输的数据需要序列化,因此Celery中的每条消息都有一个content_type头,描述了用于对其进行编码的序列化方法。
默认序列化程序是 JSON,但您可以使用 task_serializer 设置更改此设置,或者针对每个单独的任务,甚至每条消息。
作为序列化器,您还可以使用pickle、yaml 和msgpack,但数据必须是序列化的。
序列化是强制性的,请记住任务将使用 JSON 进行通信(这是您的情况)并在使用数据之前对其进行反序列化。
【讨论】: