gpt4 book ai didi

azure - 耐用功能: Return Result from Orchestrator

转载 作者:行者123 更新时间:2023-12-04 20:30:29 25 4
gpt4 key购买 nike

我有一个非常适合持久函数序列示例的用例:通过三个函数推送 json 有效负载,每个函数都会修改 json 图表并将其转发到下一个函数。

在序列示例中,通过向协调器发出查询来检索序列结果。

在我的用例中,我想直接返回三个函数的结果,本质上作为第三个函数的响应。

有办法做到这一点吗?这还明智吗?

最佳答案

这当然是可行的。您可以从 HTTP 触发器开始编排并使用 GetStatusAsync函数内的 API 可以轮询并等待其完成。完成后,您可以从 HTTP 触发器返回结果。

也许是这样的:

public static async Task<JObject> Run(JObject input, DurableOrchestrationClient client)
{
string instanceId = await client.StartAsync("MyOrchestration", input);
for (int i = 0; i < 60; i++)
{
var status = await client.GetStatusAsync(instanceId);
if (status?.RuntimeStatus == "Completed")
{
return (JObject)status.Output;
}

// handle other status conditions, like failure

await Task.Delay(TimeSpan.FromSeconds(1));
}

// handle timeouts
}

正如您从代码中看到的,您将遇到的问题是处理错误条件。例如,如果编排失败,你的函数会做什么?另外,如果需要很长时间才能完成怎么办?这些是您当然可以弄清楚的事情,但您需要防御性地编写代码来处理这些情况。

关于azure - 耐用功能: Return Result from Orchestrator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47370875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com