【问题标题】:celery tasks converts python list into strings. how to avoid this?celery 任务将 python 列表转换为字符串。如何避免这种情况?
【发布时间】:2019-07-08 02:04:42
【问题描述】:

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

【问题讨论】:

  • 您是否介意提供一些代码,我们可以查看并了解您的问题。谢谢

标签: django django-templates celery djcelery


【解决方案1】:

docs你可以阅读:

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

默认序列化程序是 JSON,但您可以使用 task_serializer 设置更改此设置,或者针对每个单独的任务,甚至每条消息。

作为序列化器,您还可以使用pickleyamlmsgpack,但数据必须是序列化的。

结论:

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

【讨论】:

  • 是否可以反序列化html模板中的数据?
  • 是的,您始终可以选择使用自定义过滤器或标签。
猜你喜欢
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多