【发布时间】:2018-02-02 22:39:09
【问题描述】:
我在使用 celery 3.1.25 和 4.1.0 时遇到了这个错误,如果我使用 pickle 设置序列化会发生这种情况(我知道这是安全问题)但我使用的库需要这种序列化才能工作有文件,有人解决过这个问题吗?
将在问题底部添加我的冻结。
谢谢
无法解码消息正文:DecodeError(TypeError('model_unpickle() 恰好需要 3 个参数(1 个给定)', , (('data_importer', 'FileHistory'),)),) [type:u'application/x- python-serialize' encoding:u'binary' headers:{u'origin': u'gen29@f6876eb537fc', u'lang': u'py', u'task': u'data_importer_task', u'group':无,u'root_id':u'655b3b91-b48e-41c3-a893-ab7b5bdfdf79',u'expires':无,u'retries':0,u'timelimit':[3600,无],u'argsrepr': u'()', u'eta': 无, u'parent_id': 无, u'id': u'655b3b91-b48e-41c3-a893-ab7b5bdfdf79', u'kwargsrepr': u"{'source': , 'importer': , 'file': , 'owner': >, 'subproject': , 'action': 'u'}"}] 正文:'\x80\x02)}q\x01(U\x06sourceq\x02cdjango.db.models.base\nmodel_unpickle\nq\x03U\rdata_importerq\x04U\x0bFileHistoryq\x05\x86\x85Rq\x06}q\x07(U \x06statusq\x08K\x01U\x0bfile_uploadq\tXI\x00\x00\x00upload_history/map_su/2018/02/02/7bee4c1c-751c-44df-a318-d527916148f5.xlsU\x0fcontent_type_idq\nK\x17U\x17U\x0f_django_version U\ncreated_atq\x0ccdatetime\ndatetime\nq\rU\n\x07\xe2\x02\x02\x16\x188\x00\r\xd7cpytz\n_UTC\nq\x0e)Rq\x0f\x86Rq\x10U\x06_stateq\x11cdjango。 db.models.base\nModelState\nq\x12)\x81q\x13}q\x14(U\x06addingq\x15\x89U\x02dbq\x16U\x07defaultq\x17ubU\nupdated_atq\x18h\rU\n\x07\xe2\x02 \x02\x16\x188\x00\r\xf4h\x0f\x86Rq\x19U\tobject_idq\x1aNU\x07is_taskq\x1bK\x00U\x13_content_type_cacheh\x03U\x0ccontenttypesq\x1cU\x0bContentTypeq\x1d\x86\x85Rq\x1e}q\x (h\x0bU\x061.11.9U\x05modelq X... (220389b) 回溯(最近一次通话最后): _receive_callback 中的文件“/usr/local/lib/python2.7/dist-packages/kombu/messaging.py”,第 592 行 解码 = 无 if on_m else message.decode() 解码中的文件“/usr/local/lib/python2.7/dist-packages/kombu/message.py”,第 142 行 self.content_encoding, 接受=self.accept) 加载中的文件“/usr/local/lib/python2.7/dist-packages/kombu/serialization.py”,第 184 行 返回解码(数据) 文件“/usr/lib/python2.7/contextlib.py”,第 35 行,在 __exit__ self.gen.throw(类型,值,回溯) _reraise_errors 中的文件“/usr/local/lib/python2.7/dist-packages/kombu/serialization.py”,第 59 行 reraise(包装器,包装器(exc),sys.exc_info()[2]) _reraise_errors 中的文件“/usr/local/lib/python2.7/dist-packages/kombu/serialization.py”,第 55 行 屈服 加载中的文件“/usr/local/lib/python2.7/dist-packages/kombu/serialization.py”,第 184 行 返回解码(数据) 文件“/usr/local/lib/python2.7/dist-packages/kombu/serialization.py”,第 64 行,在 pickle_loads 返回负载(BytesIO(s)) DecodeError: ('model_unpickle() 正好需要 3 个参数(给定 1 个)', , (('data_importer', 'FileHistory'),)) Django==1.11.9 芹菜==4.1.0 台球==3.5.0.3 amqp==2.2.2 数据导入器==3.0.2 海带==4.1.0【问题讨论】:
-
pickle 不能很好地处理函数
-
您能否也为您的任务添加代码,如果在 Django 中发生这种情况,可能会添加更多细节,例如调用任务的 views.py 或 models.py
标签: python django python-2.7 serialization