- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试实现重试政策,但它一直被忽略。SubscriptionClient 中是否有属性覆盖我在创建客户端时提供的属性?
这是我试过的代码:
_retryPolicy = new Microsoft.Azure.ServiceBus.RetryExponential(
TimeSpan.FromMinutes(2), // MinBackOff
TimeSpan.FromMinutes(5), // MaxBackOff
3); // Max Retries
_subscriptionClient = new SubscriptionClient(
serviceBusPersisterConnection.ServiceBusConnectionStringBuilder,
subscriptionClientName, retryPolicy: _retryPolicy);
因此,这应该使其仅以最少 2 分钟的间隔重试 3 次。日志结果:
28 May 2019 16:34:49.928 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:49.285 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:48.718 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:48.075 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:47.499 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:46.965 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:46.511 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:45.957 MessageId: 1d327c9033de4fc69892766084264
如您所见,它重试了 8 次而不是 3 次,并且重试之间的时间(这是我的主要问题)间隔为半秒。
为了确定这不是我的重试策略,我尝试了这个:
_subscriptionClient = new SubscriptionClient(
serviceBusPersisterConnection.ServiceBusConnectionStringBuilder,
subscriptionClientName, retryPolicy: RetryPolicy.NoRetry);
结果完全一样,所以我确定它被忽略了。任何帮助将不胜感激。
继续努力。
最佳答案
RetryExponential旨在供服务总线客户端在存在不会立即冒泡到您的代码的暂时性错误时使用。 IE。客户端内置的内部重试机制,用于在引发异常之前代表您执行重试。如果没有异常并且您的回调显式放弃消息,则此处甚至不使用重试策略,并且消息只是通过正常传递达到 MaxDeliveryCount 次(在您的场景中为 50 次),之后是 DQed。
使用重试策略向服务总线客户端指定在放弃之前如何处理暂时性错误,而不是消息可以出列多少次。
您可以阅读更多关于 here 的信息.
希望对您有所帮助。
关于c# - Microsoft.Azure.ServiceBus - SubscriptionClient 忽略 RetryPolicy (RetryExponencial),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346614/
subscriptionClient.AbandonAsync 与 subscriptionClient.closeAsync 之间有什么区别。 我需要检查订阅客户端中是否存在主题。由于某些限制,我无
在 Azure 服务总线命名空间中,有一个 SubscriptionClient 类型,具有以这种方式启动 MessageSession 的方法:- MessageSession session =
在 Azure 服务总线命名空间中,有一个 SubscriptionClient 类型,具有以这种方式启动 MessageSession 的方法:- MessageSession session =
我正在使用 Azure 服务总线云服务和 Microsoft.Azure.ServiceBus 3.2.0 NuGet 包。我正在研究这个主题。 当我广告 SubscriptionClient 规则来
我正在尝试使用 Azure SubscriptionClient.PeekBatch(int count) 来查看消息。对于 0 - 9 的计数值,一切正常,但一旦我输入 > 9 的值,我只会收到 9
我有一个控制台应用程序来读取 Azure 服务总线上的订阅中存在的所有代理消息。我那里有大约 3500 条消息。这是我读取消息的代码: SubscriptionClient client = mess
如何停止从设置为事件驱动消息泵的订阅客户端接收消息?我目前有一些代码可以工作,但是当我连续运行两个测试时,它们会第二次中断。我相当确定消息仍在从我创建的第一个实例中的订阅中提取。 http://msd
我正在努力解决消息在死信队列中过快结束的问题。我已经指定了这样的 ExponentialRetry 策略: private readonly RetryExponential _ret
当订阅需要 session 时,Azure 服务总线订阅客户端是否支持使用 OnMessage 操作? 我有一个订阅,名为“TestSubscription”。它需要一个 sessionId 并包含通
如果我向某个主题发送一批消息,并使用订阅客户端读取消息,那么我似乎会按顺序接收消息,即每发送一条消息都会触发 OnMessageAsync,但是有一个每个接收事件之间有明显的(150+ 毫秒)延迟 发
如果我向某个主题发送一批消息,并使用订阅客户端读取消息,那么我似乎会按顺序接收消息,即每发送一条消息都会触发 OnMessageAsync,但是有一个每个接收事件之间有明显的(150+ 毫秒)延迟 发
我一直在研究 Azure 服务总线 2.0 版提供的新消息泵。特别是,我使用主题和订阅(而不是队列)。 我可以让消息泵与非 session 订阅一起工作,并且只要有brokeredMessage可用,
我在 SubscriptionClient 上调用 BeginReceive(),如下所示: client.BeginReceive(new TimeSpan(6, 0, 0), new AsyncC
我正在 .net Core 2.1 中编写一个控制台应用程序,我的目的是监听 ServiceBus 中某个主题的消息,并使用 NEST api 处理到达 Elasticsearch 的新消息(NEST
我正在尝试实现重试政策,但它一直被忽略。SubscriptionClient 中是否有属性覆盖我在创建客户端时提供的属性? 这是我试过的代码: _retryPolicy = new Microsoft
这很奇怪,我不确定,但我记得不久前我做了这样的事情 SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(
这很奇怪,我不确定,但我记得不久前我做了这样的事情 SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(
根据 Hasura 中的用户角色动态更改 Apollo SubscriptionClient 中的 header 的正确方法是什么? 堆: 下一篇JS 阿波罗 Auth0 Hasura(使用角色列存储
我是一名优秀的程序员,十分优秀!