Python Celly.group使用的ResultSet是否使用了错误的方法“添加”结果?
芹菜是否使用了Python Celly.group使用的ResultSet是否使用了错误的方法“添加”结果?,python,python-2.7,celery,Python,Python 2.7,Celery,芹菜是否使用了ResultSet。使用错误方法添加结果的组 我使用的芹菜版本是3.0.24 要点 而这产生的回溯。。。 的底部有相关的芹菜源代码 编辑0 一些其他信息,如有必要: 实际上,我正在别处启动芹菜工人,使用-p eventlet、redis代理和redis后端。我已经成功地使用这个配置一段时间了 此外,还使用current\u app更新了上述要点,使其更加具体 编辑1 问题出在芹菜/app/builtins.py周围。在将GroupResult传递给GroupResult之前,我
ResultSet
。使用错误方法添加结果的组
我使用的芹菜版本是3.0.24
要点
而这产生的回溯。。。
的底部有相关的芹菜源代码
编辑0
一些其他信息,如有必要:
实际上,我正在别处启动芹菜工人,使用-p eventlet
、redis代理和redis后端。我已经成功地使用这个配置一段时间了
此外,还使用current\u app
更新了上述要点,使其更加具体
编辑1
问题出在芹菜/app/builtins.py
周围。在将GroupResult
传递给GroupResult之前,我必须将results
强制为一个列表,而不是一个元组,以使其正常工作
芹菜:您是如何获得groupresult
?groupresult=group([get\u page.s(url)])的。第一次通过应用\u async()
,groupresult=None
,它将执行代码来定义groupresult
。第二次/第三次/第n次通过时,它将进入else:
即使文档注意到GroupResult与ResultSet是相同的,但实际上它们的行为不同。芹菜维护者的回应如下:
# primary celery module
celery = Celery(...)
# task module
from celery import current_app
@current_app.task(max_retries=5)
def get_page(url):
# do stuff to "get page"
return page
# program
from celery import group
url = "http://someurl"
if not groupresult:
groupresult = group([get_page.s(url)]).apply_async()
else:
async = get_page.delay(url)
groupresult.add(async)
File "/lib/python2.7/site-packages/celery/result.py", line 308, in add
self.results.append(result)
AttributeError: 'tuple' object has no attribute 'append'