【问题标题】:ProcessQueueMessage function in WebJob console appWebJob 控制台应用程序中的 ProcessQueueMessage 函数
【发布时间】:2016-01-28 02:56:01
【问题描述】:

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

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

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

【问题讨论】:

  • 你可能想看看Service Bus Queues。服务总线队列比存储队列更复杂,我相信您可以更好地控制处理。但是,我不确定这将如何融入您的网络工作应用程序概念。

标签: c# azure azure-webjobssdk azure-storage-queues


【解决方案1】:

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

如果您有高级需求并需要深入插入 SDK 队列处理管道,您可以实现并注册自己的自定义 QueueProcessor 实例来覆盖/自定义消息处理的各个部分。详情请见this sample

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多