Kni*_*mar 0 serialization json pickle celery flask
我在tasks.py中有以下内容,指定json应该用作Celery的默认序列化程序.
celery = Celery('app', broker = 'redis://localhost:6379/4')
from kombu import serialization
serialization.registry._decoders.pop("application/x-python-serialize")
celery.conf.update(
CELERY_TASK_SERIALIZER = 'json',
CELERY_RESULT_BACKEND = 'redis://localhost:6379/4',
CELERY_ACCEPT_CONTENT = ['json'],
)
Run Code Online (Sandbox Code Playgroud)
此外,在调用任务时,我将json序列化器指定为:
r = t1.apply_async(kwargs = {'msg': msg}, serializer = 'json')
r = t1.wait()
Run Code Online (Sandbox Code Playgroud)
但是我仍然在从该行t1.wait()开始的回溯调用行中得到以下错误.
ContentDisallowed:拒绝反序列化pickle类型的不可信内容(application/x-python-serialize)
任务t1引发了不同类型的异常,但我确实处理它们并尝试返回一个可以辨认的值.
我正在使用Celery 3.1.17(Cipater)和Flask0.10.1
那究竟是什么导致了这个错误呢?如果需要更多信息,请告诉我.
谢谢 :)
要使用json,您需要指定
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
Run Code Online (Sandbox Code Playgroud)
看起来你不见了
CELERY_RESULT_SERIALIZER = 'json'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1435 次 |
| 最近记录: |