如何将django请求对象传递给芹菜工作者。当尝试传递请求对象时,它会抛出错误
Can't Pickle Input Objects
似乎celery序列化传递给worker的任何参数。 我尝试使用其他序列化方法,如JSON。
CELERY_TASK_SERIALIZER = "JSON"
但它没有用。
是否可以配置芹菜,以便它不会序列化数据。或者我可以在传递给worker之前将请求对象转换为字符串,然后再转换回worker中的对象。
提前致谢...
答案 0 :(得分:10)
你无法挑选Django的请求对象(有关详细信息,请参阅this question)。相反,您应该将所需的请求对象中的相关信息传递给Celery任务。
将其他信息传递给Celery任务应该没有问题,因为大多数对象可以毫无问题地进行腌制。