Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebJob控制台应用程序中的ProcessQueueMessage函数_C#_Azure_Azure Webjobssdk_Azure Storage Queues - Fatal编程技术网

C# WebJob控制台应用程序中的ProcessQueueMessage函数

C# WebJob控制台应用程序中的ProcessQueueMessage函数,c#,azure,azure-webjobssdk,azure-storage-queues,C#,Azure,Azure Webjobssdk,Azure Storage Queues,我正在创建一个新的控制台应用程序,我将在Azure上作为WebJob运行。当我在Visual Studio中创建新应用程序时,它已经创建了一个Function.cs类,该类包含以下方法,该方法自动从我的队列中拾取消息并对其进行处理 public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log) { log.WriteLine(message); } 我的问题是,如

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

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

我的问题是,如何更好地控制队列消息的处理。例如,我希望确保邮件已被处理和删除。这个方法似乎可以为我完成所有这些,但是我如何知道消息是否被正确处理?如果它失败了,我如何告诉它不要删除该邮件呢?

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

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

您可能需要查看。服务总线队列比存储队列更复杂,我相信您可以更好地控制处理。然而,我不确定这将如何适应你的网络求职应用程序的概念。