python - 强制 celery 使用 json 代替 pickle

标签 python celery

我已将 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)

我是否遗漏了一些可能未记录的内容。

最佳答案

问题是 celery 正在接受 json 并在发送任务时将其发送内容作为 pickle 因此出现错误。

如前所述here在调用时你必须指定序列化器(从 celery 4.0 开始默认为 json )

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

关于python - 强制 celery 使用 json 代替 pickle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36919065/

相关文章:

python - 将 jinja2 block 渲染为 json

python - celery 无法在 docker 中启动

python - 启动 celery worker 时出现 ValueError : not enough values to unpack (expected 3, 为 0)

python - 大型 celery 任务内存泄漏

python - 如何在python中减去两个列表

python - 如何处理 Selenium 中的奇怪字符? 'utf8' 编解码器无法解码位置 0 中的字节 0xc3 :

Python 二维条件

python - 按组 sklearn cross_val_score 分为训练和测试

Django 是这个链接任务吗?

生产中的 Django-Celery?