gpt4 book ai didi

azure - 持久函数 - 事件函数内的可等待任务

转载 作者:行者123 更新时间:2023-12-05 02:15:56 26 4
gpt4 key购买 nike

我有一个持久函数,其输入由先前的事件函数确定对于每个事件函数,我有多个可等待的任务,其中每个任务都依赖于前一个任务的输出。

这是我的结构如下:

编排

[FunctionName("MessageController")]
public static async void Run(
[OrchestrationTrigger] DurableOrchestrationContext context,
TraceWriter log)
{
if (!context.IsReplaying) log.Warning("MessageController started");

var Input1= context.CallActivityAsync<ResultMessage>("Function_1", new InputMessage());
var Input2= context.CallActivityAsync<ResultMessage>("Function_2", Input1);
var Input3= context.CallActivityAsync<ResultMessage>("Function_2", Input2);

}

事件函数

[FunctionName("Function_1")]
public static ResultMessage Run(
[ActivityTrigger] DurableActivityContext activityContext,
TraceWriter log)
{
//Awaitable task
var taskOutput= await DoSomething();

//Awaitable task
var token = await DoAnotherThing(taskOutput);
}

我已经测试过了,一切正常。但我想知道这是否是好的做法?对于持久函数来说,在事件函数中存在可等待任务是正常的吗?

最佳答案

是的,完全没问题。事实上,您可以在事件功能中做几乎任何您喜欢的事情,只要它们在合理的时间内完成(消耗计划中的 5 分钟以下)。您可以执行异步调用、切换线程以及执行非确定性操作。

Constraints仅适用于协调器功能。

关于azure - 持久函数 - 事件函数内的可等待任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50850513/

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