django 2.2, celery 4.3,出現 kombu.exceptions.EncodeError: cannot serialize '_io.BufferedReader' object 的分析解決


情況說明:celery 默認解析為 pickle

 class xxxxx():
    def __init__(self,request):
            self.request = request (這個是 django 請求的 requst <WSGIRequest: POST '/server/xxxxx/'>,最后把這個去掉就好了,)
    def funcA(self,x,y):
            return x,y
    def funcB(self):
            # website_request 這是我 app 下的  tasks.py 里的一個函數  ,然后把它放入后台,根據返回結果去調用 self.funcA
             website_request.apply_async(kwargs={'fun':self.funcA,'x':1,'y':1})
     

分析:

  • 把函數傳入后台時,不要在初始化的時候,傳入一些 pickle 不能解析的函數,列如 接受 django 請求的 request,其他的目前未發現


免責聲明!

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



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