芹菜和弦如何得到部分成功的标题结果?

2024-06-11 15:40:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django应用程序,可以使用netmiko将配置推送到网络设备。为此,我使用一个celry任务来完成实际工作,根据需要进行重试,并根据任务的进度更新一些Django模型实例。然后有一个视图向用户显示这些任务的当前状态。任务是一组的(一个更改=多个设备),因此我想在更改级别报告它们的成功情况-有时一个设备不会响应,但大多数其他设备会响应。在

我想我可以用芹菜里的和弦来做这个,结果:

for d in devices:
    pd = DeviceConfigPush(d.task_info)
    subtasks.append(pd.s(task_info))

master = MasterConfigPush()
ch = chord(header=subtasks, body=master.s().set(link_error=['push_ssh_task_master']))
ch.delay()

这是可行的,但是主任务(chord的主体)会被调用,如果结果都成功,则使用一个结果列表,如果有失败,则使用UUID。我希望得到类似于['result'、'result'、None、'result']的东西。在这种情况下,我也看不到任何失败的情况。在

所以: 1) UUID的意义是什么? 2) 不管如何,主体任务如何访问头任务的结果?在


Tags: djangoinfomaster应用程序taskuuid情况result