Python 芹菜块大数据集

Python 芹菜块大数据集,python,celery,Python,Celery,我正在尝试使用芹菜的chunks功能将我的iterable数据集划分为若干部分,然后将其发送到芹菜任务进行进一步处理。 我从下面的sqlalchemy调用中得到了一个查询集 query_set = MyModel.query.join(OtherModel).all()) 目前,query_set是一个元组列表。查询结果的长度为40000,并且还在增长 我有另一个函数(芹菜任务),它处理查询集中的数据,它的定义是 @celery_app.task def crunch_qs(query_set

我正在尝试使用芹菜的chunks功能将我的iterable数据集划分为若干部分,然后将其发送到芹菜任务进行进一步处理。 我从下面的sqlalchemy调用中得到了一个查询集

query_set = MyModel.query.join(OtherModel).all())
目前,query_set是一个元组列表。查询结果的长度为40000,并且还在增长

我有另一个函数(芹菜任务),它处理查询集中的数据,它的定义是

@celery_app.task
def crunch_qs(query_set):
    . . . 
    . . . 
由于query_set是一个元组列表,我想我可以像这样直接将它传递给
crunch_qs

crunched_qs = crunch_qs.chunks(query_set, 5000)()
results = crunched_qs.get()
那是行不通的。这给了我一个意想不到的结果。它将每个查询集的元组中的项目解包,并将它们发送到
crunch\qs
。 因此,
crunch\u qs
将在第一次迭代时接收**查询集[0],这会引发以下错误

TypeError:crunch_qs()正好接受1个参数(给定10个)

len(查询集[0])=10

我也试过

crunched_qs = crunch_qs.chunks((row,) for row in query_set, 5000)()
results = crunched_qs.get()
这样效果好一点。打字错误消失了。但是,我的
crunch_qs
函数现在将每一行(元组)作为参数,而不是长度为5000的元组列表

任何关于如何将元组列表传递给芹菜块的帮助/想法都将不胜感激

提前谢谢