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,其他的目前未发现
There are no shortcuts to any place worth going. -- Beverly Sills
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步