如何使工作配对命名空间接收方将消息从积压队列移动到主队列。它似乎与发件人一起使用但接收器设置EnableSyphon = true似乎不起作用。我总能看到积压队列中的消息并且不断增长。我能找到的所有信息都是这个代码块,但是因为Service Bus 2.4 Messaging.Factory没有Open方法。
factory = MessagingFactory.Create(SB_Primary_NS_Address);
factory.PairNamespace(new SendAvailabilityPairedNamespaceOptions
{
EnableSyphon = true,
TransferQueueCount = 10,
MessagingFactory = paired-NS_factory,
NamespaceManager = paired-NS_manager
});
factory.Open();
答案 0 :(得分:1)
他们已经改变了如何将命名空间与更新版本配对。而是通过传入PairedNamespaceOptions实例从主消息传递工厂调用异步函数(PairNamespaceAsync)。请注意,返回的Task实际上是Promise类型,因此您不要在Task上调用Start(),因为它已经启动,只需调用Waiting()。
此外,您必须确保Secondary Namespace和MessagingFactory具有管理级安全性。简单地使用Publish对于MessagingFactory来说是不够的,它不会将消息发送回主队列/主题。
// assume members _messagingFactory, _secondaryNamespaceManager, _secondaryManagementMessagingFactory have been assigned.
try
{
var pairedNamespaceOptions = new SendAvailabilityPairedNamespaceOptions(_secondaryNamespaceManager,
_secondaryManagementMessagingFactory,
1,
TimeSpan.FromSeconds(30),
true);
_messagingFactory.PairNamespaceAsync(pairedNamespaceOptions).Wait();
}
catch (Exception ex)
{
// logging or handle
}
一些有用的链接。