首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在循环中将任务添加到和弦中?

是否可以在循环中将任务添加到和弦中?
EN

Stack Overflow用户
提问于 2017-06-21 15:11:04
回答 2查看 92关注 0票数 0

我发现的大多数和弦例子都是这样的:

代码语言:javascript
复制
res = chord([add.s(2, 2), add.s(4, 4)])(sum_task.s())

代码语言:javascript
复制
chord(add.subtask((i, i))
...     for i in xrange(100))(tsum.subtask()).get()

我目前有一段代码正在启动任务:

代码语言:javascript
复制
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中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-22 20:52:30

最后,我将代码更改为下面的代码,以便使用和弦。基本上,我是在循环中构建参数列表,然后使用它创建chord:

代码语言:javascript
复制
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]
票数 0
EN

Stack Overflow用户

发布于 2017-06-22 03:12:24

您可以通过任务列表和回调调用chord。例如,如果您有一个add函数,那么您可以这样调用chord

代码语言:javascript
复制
tasks = []

for i in range(10):
    tasks.append(add.s(i, i))

callback = add.si(100, 100)

chord_result = group(tasks)(callback)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44679941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档