我发现的大多数和弦例子都是这样的:
res = chord([add.s(2, 2), add.s(4, 4)])(sum_task.s())或
chord(add.subtask((i, i))
... for i in xrange(100))(tsum.subtask()).get()我目前有一段代码正在启动任务:
for node in self.simulationRecord.fields['departureNodes']:
passengers = int(outgoing_seat_counts.get(node, 0))
# send the job to the queue
res = tasks.my_task.delay(passengers, start_date, end_date)
task_ids.append(res.id)我想转换为使用和弦,但我不太清楚如何转换我目前的结构使用和弦的基础上,我已经看到的例子。如何将参数添加到my_task的每个调用添加到chord中?
发布于 2017-06-22 20:52:30
最后,我将代码更改为下面的代码,以便使用和弦。基本上,我是在循环中构建参数列表,然后使用它创建chord:
arg_list = []
for node in self.simulationRecord.fields['departureNodes']:
passengers = int(outgoing_seat_counts.get(node, 0))
arg_list.append({'passengers': passengers})
res = chord(tasks.my_task.s(i['passengers'],start_date,end_date) for i in arg_list)(tasks.callback.s())
task_ids = [task.id for task in res.parent.results]发布于 2017-06-22 03:12:24
您可以通过任务列表和回调调用chord。例如,如果您有一个add函数,那么您可以这样调用chord
tasks = []
for i in range(10):
tasks.append(add.s(i, i))
callback = add.si(100, 100)
chord_result = group(tasks)(callback)https://stackoverflow.com/questions/44679941
复制相似问题