6

我如何将 django 请求对象传递给 celery worker。当尝试传递请求对象时,它会引发错误

Can't Pickle Input Objects

似乎 celery 序列化了传递给 worker 的任何参数。我尝试使用其他序列化方法,如 JSON。

CELERY_TASK_SERIALIZER = "JSON"

但它不起作用。

是否可以配置 celery 使其不会序列化数据。或者我可以在传递给worker之前将请求对象转换为字符串,然后再转换回worker中的对象吗?

提前致谢...

4

1 回答 1

10

您不能腌制 Django 的请求对象(有关详细信息,请参阅此问题)。相反,您应该将所需的请求对象中的相关信息传递给 Celery 任务。

将其他信息传递给 Celery 任务应该没有问题,因为大多数对象都可以毫无问题地腌制。

于 2012-07-11T09:26:57.963 回答