当前位置: 首页 > 知识库问答 >
问题:

地下铁路及天青服务巴士定期重试

高化
2023-03-14

我们的公共交通/Azure服务总线设置运行得很好,但还有一个功能我们很想使用,但似乎不起作用-计划重新交付。

以下是启动中的代码

busFactoryConfig.UseServiceBusMessageScheduler();
    
busFactoryConfig.SubscriptionEndpoint(Constants.SubscriptionName, Constants.TopicName, configurator =>
                    {
                        configurator.UseScheduledRedelivery(r => r.Intervals(TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(30)));
                        configurator.UseMessageRetry(r =>
                        {
                            r.Immediate(2);
                            r.Ignore<InvalidCastException>(); //we don't want to retry here, the message content is invalid
                        });

这似乎与文档很匹配。尽管文档似乎只涉及RabbitMQ。

但是,当这实际触发时,会引发masstransit异常,并且重新交付不起作用。这是在使用。NET核心3.1、MassTransit 7.0.1和Azure服务总线主题。

错误(故意抛出以触发重试):

MassTransit.TransportException: **ADDRESS** => The message delivery could not be rescheduled
 ---> System.AggregateException: One or more errors occurred. (The specified resource description is invalid. TrackingId:cda5544e-90e4-4818-97f9-4de3ee55aaad_G46, SystemTracker:**TOPIC**, Timestamp:2020-07-22T13:22:23) (BAM! <- MY ERROR)
 ---> Microsoft.Azure.ServiceBus.ServiceBusException: The specified resource description is invalid. TrackingId:cda5544e-90e4-4818-97f9-4de3ee55aaad_G46, SystemTracker:**TOPIC**, Timestamp:2020-07-22T13:22:23
 ---> System.ArgumentException: The specified resource description is invalid. TrackingId:cda5544e-90e4-4818-97f9-4de3ee55aaad_G46, SystemTracker:**TOPIC**, Timestamp:2020-07-22T13:22:23

我尝试了不同的设置,更类似于文档:

busFactoryConfig.UseMessageScheduler(uri); //Uri is my sb endpoint, minus Endpoint=

这给我们带来了一个不同的错误:

InvalidAudience: The authorization header contains a token with a wrong audience.

快速阅读会发现这与Azure如何使用密钥有关,而且可能已经过时。然而,这就是我用来成功连接到总线的同一个URI——我所做的只是删除Endpoint=以便在构造新URI()时它是一个有效的URI。

Azure服务总线的计划重新交付是否与MT一起工作?配置中是否缺少某些内容?

任何帮助都将不胜感激。

共有2个答案

欧阳衡
2023-03-14

正如Chris在上面回答的那样-SubscriptionEndpoints不受支持,您必须使用ReceiveEndpoint。这对我很有用:

busFactoryConfig.UseServiceBusMessageScheduler();

busFactoryConfig.ReceiveEndpoint(Constants.SubscriptionName, configurator =>
                    {
                        configurator.UseScheduledRedelivery(r => r.Intervals(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(2), TimeSpan.FromMinutes(3)));
                        configurator.UseMessageRetry(r =>
                        {
                            r.Immediate(2);
                            r.Ignore<InvalidCastException>(); //we don't want to retry here, the message content is invalid
                        });

                        configurator.ConfigureConsumer<MyConsumer>(context);
                    }
龚沛
2023-03-14

无法使用订阅终结点进行重新交付。如果要使用重传,我建议使用常规ReceiveEndpoint(消息将从主题转发到队列,队列由MassTransit使用消费者消息类型配置)。

订阅endpoint特定于ASB,通常仅在您有想要直接订阅的现有主题时使用。

 类似资料:
  • 我们正在两个不同的实例上运行云服务。这个云服务在服务总线队列上旋转一个接收器。此接收器配置为:1。窥视并锁定模式2。自动完成=真3。RenewLockTimeout=10分钟4。MaxConcurrentMessages=1 5。PrefetchCount=默认值(应为0) 几天前,Azure决定更新我们的实例。我从日志中看到,在18.18时,第一个实例被请求停止。在18.24时,该实例停止,并在

  • Darksky Darksky 是美国著名的天气服务提供商,可以提供世界多地详细的天气实况及预报服务。使用前,请先至 官网 注册获取 API。 sensor: - platform: darksky api_key: API 秘钥 # 监测内容,可选 monitored_conditions: - summary //概述 - pr

  • 云边开源轻博是国内首个开源的轻博客平台,作者吸取轻博使用方面的优点,争取做最好用的开源轻博客客给每一位朋友使用,为站长搭建更为简单方便的交流平台。   地铁客开源轻博v1.8 Beta 更新说明 1、全站素材文件、JS文件、CSS的优化和压缩,极大的提高网站的加载速度; 2、界面UI的更新,多谢群里小胖的大力支持,为地铁客做出了精美的UI设计图,这次更新一部分,剩下的会继续努力的! 3、数据库的优

  • 我们正在使用spring云配置服务器。Spring配置客户端使用Spring控制总线(RabbitMQ)获取更新。 看起来每个配置客户端实例都会创建一个连接到'spring.cloud.bus'交换的队列。 对有多少应用程序实例可以连接到“spring.cloud.bus”交换有任何可伸缩性限制? 我想RabbitMQ可以扩展来处理这个问题。 寻找这方面的指导方针。 许多感谢,

  • ASUS 华硕路由器 注意 Windows 所装 Home Assistant 无法使用此组件。 更新提示 本插件配置方法自 0.82 版本开始发生变化,请及时更新。 使用前请前往路由器管理界面 —— 系统管理 —— Enable SSH 或 启动 Telnet asuswrt: host: 路由器IP username: 路由器账号 password: 路由器密码 protoc

  • 我想看看如何在Seaborn中使用条形图来显示数据框中的值,而不是图形中的值 1) 我希望在一个数据帧中显示一个字段的值,同时绘制另一个字段的图形。例如,在下面,我画的是“小费”,但我想把“总账单”的价值放在每个横条的中心位置(即周五上方325.88,周六上方1778.40,等等) 2) 有没有一种方法可以缩放条的颜色,最低的“total_bill”值的颜色最浅(在本例中为星期五),最高的“tot