我有8023个要解析的ID。为了异步解析这些,我有一个称为解析器的队列。最初,我是这样将ID传递给队列的
jobs = group(parse.s(item.id) for item in products)
jobs.apply_async()
但是,当我这样做时,apply_aync有时会花费很长的时间(> 10分钟),并且我的主要过程陷入了困境。经过一番调查,我遇到了很多问题。我实现了如下
parser_param = [item.id for item in products]
parse.chunks(iter(parser_param), 100).apply_async(queue='parser')
但这只会向队列解析器添加81个任务。当我从该队列中检索到一条消息时,我发现基本上它已将ID列表拆分为较小的列表,每个ID包含100个ID,并将该较小的列表传递给解析器。解析器任务只需要一个参数(id)而不是列表,因此我得到TypeError