Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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# 发生错误时队列前面的Azure WebJob服务总线重新排队消息_C#_Azure_Azure Webjobs_Azureservicebus_Servicebus - Fatal编程技术网

C# 发生错误时队列前面的Azure WebJob服务总线重新排队消息

C# 发生错误时队列前面的Azure WebJob服务总线重新排队消息,c#,azure,azure-webjobs,azureservicebus,servicebus,C#,Azure,Azure Webjobs,Azureservicebus,Servicebus,我有一个WebJob从服务总线获取消息,它工作正常。如果webjob未能完成或引发异常,则消息将在队列中发回,这本身是正常的 我已经将MaxDequeueCount设置为10,如果在某些情况下失败,这不是问题,因为它将再次尝试处理它。但问题是,消息似乎被发送到队列的底部,其他消息在我们返回到第一个失败消息之前被处理 我希望一次处理一条消息,因为我可能会在同一个实体上连续出现多个更新。如果顺序改变,它将以错误的顺序更新实体 是否可以在出错时将消息发送回队列前面,或继续处理同一消息,直到达到MaxD

我有一个WebJob从服务总线获取消息,它工作正常。如果webjob未能完成或引发异常,则消息将在队列中发回,这本身是正常的

我已经将MaxDequeueCount设置为10,如果在某些情况下失败,这不是问题,因为它将再次尝试处理它。但问题是,消息似乎被发送到队列的底部,其他消息在我们返回到第一个失败消息之前被处理

我希望一次处理一条消息,因为我可能会在同一个实体上连续出现多个更新。如果顺序改变,它将以错误的顺序更新实体


是否可以在出错时将消息发送回队列前面,或继续处理同一消息,直到达到MaxDequeueCount?

理想情况下,您不应该依赖消息顺序

根据您的需求,您可能会使用Azure服务总线的FIFO语义。在会话中处理消息时,如果消息被中止,则将再次处理该消息,而不是转到队列的末尾。您需要记住以下几点:

  • 一次只能处理一条消息
  • 需要使用会话
  • 若消息未完成且未中止,则它将挂起在队列中,并在会话重新启动时被拾取

  • 理想情况下,您不应该依赖于消息顺序

    根据您的需求,您可能会使用Azure服务总线的FIFO语义。在会话中处理消息时,如果消息被中止,则将再次处理该消息,而不是转到队列的末尾。您需要记住以下几点:

  • 一次只能处理一条消息
  • 需要使用会话
  • 若消息未完成且未中止,则它将挂起在队列中,并在会话重新启动时被拾取