2011-09-23 247 views
1

如果我选择在NServiceBus pub子模型中使用自动订阅,系统在客户端存在时不会自动取消订阅。如何取消订阅NServiceBus订阅?

我总是可以做一个手动取消订阅,但我无法找出现有的订阅列表,我不想硬编码取消订阅。

所以我的问题是:在nservicebus有没有自动取消订阅功能?如果没有,我如何获得客户当前订阅的列表?

+0

rushui出于好奇你为什么要取消订阅? –

+0

您是否看了TimeToBeReceived属性 - 它将保证在给定时间段内未处理的消息将被自动丢弃。 –

+1

休 - 我注意到,如果客户端没有取消订阅,发布者将始终将事件发送到客户端msmq。当客户端应用程序未运行时,我不想使用网络和服务器资源。 –

回答

3

我不认为你会找到一个自动退订。 Udi和公司有意设计了NServiceBus,以使它很难做到不符合异步,pub/sub SOA模式的事情。通常,客户端正在运行或未运行的事实不会影响订阅是否仍然有效。如果这真的是你需要的,你可能必须自己编码。

+0

实质上你在说什么Eric在面向消息中间件的术语中所有订阅都是持久的。 –

+2

取消订阅的一个原因是,如果您已经实施了替换消息类型,并且不再希望将旧消息发送给您。但是,我想可以保留它的处理程序,并且如果有人到达,调用Bus.Unsubscribe(message.GetType())? –