【发布时间】:2020-09-14 20:03:03
【问题描述】:
我正在使用 Celery 和弦来构建大型文档页面内容的并行 AI 处理。因为这是一个没有公共签名的一次性使用功能,所以我正在挑选对象以分发和重新聚合。处理单个页面的任务是成功读取参数并执行所需的功能。但是,尝试将结果返回到队列以进行后续聚合时失败。
有谁知道为通过 Chord 调用的单个任务指定 result_serializer 的方法?
和弦生成---
callback = processPageResults.subtask(kwargs={'cdd_id' : cdoc.cdd_id,'user_id':user.id},options={'serializer':'pickle'})
res = chord([processPage.s(useBold,
docPages[i]).set(serializer='pickle') for i in range(0, len(docPages))], callback)()
调用任务--- @shared_task(serializer='pickle',result_serializer='pickle',bind=True, max_retries=20) def processPage(self, *args): useBold = args[0] 页=参数[1] page.processWords(使用粗体) 返回页面
错误---
kombu.exceptions.EncodeError: Object of type DocumentPage is not JSON serializable
【问题讨论】: