正确实现 Azure 函数应用程序的后台工作程序

Correct implementation of background worker for Azure function app

在 http 触发的 azure 函数应用程序上实现后台工作程序的正确方法是什么? 这个过程无论如何都不会很长 运行,只有 2-3 次休息调用(在 0.5 到 3 秒之间),但足以破坏整体用户体验。

目前,我正在使用Task.Run(async ())。其他用例中使用的相同休息调用通常是可用的调用。

通常我会使用 IHostedService 来处理它,但它在 Azure 函数应用程序中不可用。

您需要使用不同的触发器。让您的 HTTP 触发函数将队列消息放入队列中,并让队列触发函数执行后台工作。

无论如何,这就是 proper solution for request-extrinsic code,即使您没有使用 Functions。

请注意,您的队列消息将至少传递一次,因此如果您的队列触发函数不是幂等的,那么您需要对它们进行去重。