进程队列消息函数在 Web 作业控制台应用程序中

本文关键字:作业控制 控制台 应用程序 作业 Web 队列 消息 函数 进程 | 更新日期: 2023-09-27 18:32:09

我正在创建一个新的控制台应用程序,我将在 Azure 上作为 Web Job 运行。当我在 Visual Studio 中创建新应用程序时,它已经创建了一个 Function.cs 类,其中包含以下方法,该方法会自动从我的队列中选取消息并对其进行处理。

public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log)
{
   log.WriteLine(message);
}

我的问题是我如何更好地控制处理队列消息。例如,我想确保消息得到处理和删除。这种方法似乎为我完成了所有这些工作,但我怎么知道消息是否正确处理?如果失败了怎么办,我如何告诉它不要删除邮件?

进程队列消息函数在 Web 作业控制台应用程序中

是的,所有这些都是为您处理的。仅当函数成功完成时,才会删除队列消息。在此之前,当您的函数运行时,队列消息将保持不可见,因此没有其他人会拿起它进行处理。如果函数失败,消息将在短时间内变得可见,以便可以处理。如果队列消息处理可配置的次数(默认值为 5)失败,则消息将移动到病毒队列。

如果您有高级需求,需要深度插入 SDK 队列处理管道,则可以实现并注册自己的自定义 QueueProcessor 实例,以覆盖/自定义消息处理的各个部分。有关更多详细信息,请参阅此示例。