gpt4 book ai didi

c# - Azure Functions 中的“即发即忘”调用

转载 作者:太空狗 更新时间:2023-10-30 01:29:44 27 4
gpt4 key购买 nike

我在 Azure 函数中有一个长时间运行的任务,我想使用 Task.Run 在后台线程中运行该任务。我不在乎结果。

public static async Task Run(...)
{
var taskA = await DoTaskA();
Task.Run(new Action(MethodB));
....
// return result based on taskA
}

这是 Azure 函数中可接受的模式吗? (这是一个HTTP触发函数)

我知道这也可以通过将消息添加到队列并让另一个函数执行此任务来完成,但我想知道在 Azure 函数的后台线程中开始运行长时间运行的任务的优缺点。

最佳答案

最好让一个 Azure Function 运行 TaskA 并让它在 ServiceBus 中发布一条消息,这将触发另一个 >当 ServiceBus 中发布某些内容时,Azure Function 正在运行 TaskB,因为无论如何都不需要答案。

这是 microsoft's website 上显示的示例:

[FunctionName("FunctionB")]                    
public static void Run(
[ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")]
string myQueueItem,
TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
MethodB();
}

在这种情况下,您不必开始新任务。只需调用 MethodB()

这将使您能够灵活地调整 Azure Functions 计划(应用服务与消耗计划)并最大限度地降低总体成本。

关于c# - Azure Functions 中的“即发即忘”调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50066837/

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