1

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

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

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

4

1 回答 1

3

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

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

于 2016-01-28T05:42:37.240 回答