强迫芹菜用json代替泡菜

时间:2016-04-28 15:25:40

标签: python celery

我已经按照以下方式配置芹菜以使用json: CELERY_ACCEPT_CONTENT = ['json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'

但是,当工作人员收到任务时,会产生以下错误:

ContentDisallowed: Refusing to deserialize untrusted content of type pickle (application/x-python-serialize)

是否有一些我遗漏的东西可能没有记录。

2 个答案:

答案 0 :(得分:2)

问题是芹菜接受为json,并且在发送任务时其发送内容为pickle,因此出错。

here所述,您在通话时必须指定序列化程序(自celery 4.0起默认为json

add.apply_async((10, 10), serializer='json') 

答案 1 :(得分:-1)

这似乎在最新版本的芹菜中得到了解决。我在这里添加链接以供参考:

https://github.com/celery/celery/blob/8047ca9e818db8151dc6c80814600797ab94f5bc/docs/history/whatsnew-4.0.rst#json-is-now-the-default-serializer