Django+Celery+redis kombu.exceptions.EncodeError:Object of type is not JSON serializable報錯


在本文中例子中遇到問題的各種開發版本如下:

Python3.6.8

Django==2.2

celery==4.4.0

kombu==4.6.7

redis==3.3.0

大概的報錯如下截圖:

是在開發使用celery+redis+django的場景中遇到的錯誤

kombu.exceptions.EncodeError:Object of type is not JSON serializable

解決方式:

在項目的setting中增加這樣的配置,才可以

# celery==4 需要的配置參數

CELERY_TASK_SERIALIZER = 'pickle'

CELERY_RESULT_SERIALIZER = 'pickle'

CELERY_ACCEPT_CONTENT = ['pickle', 'json']

 

報錯原因:

celery4版本的 默認使用 JSON 作為 serializer ,而 celery3版本的默認使用 pickle

所以為了讓報錯消除,需要添加以上設置。

最好問題得到成功解決:運行如下結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM