假设您有两个系统A和B.系统B设置为侦听来自系统A的事件。由于一些奇怪的问题,系统B停机了很长时间。系统A在此期间产生的事件会发生什么? B会让他们B再次启动并运行吗?是否有一些超时?如果您决定实际删除B会发生什么,您如何告诉A B不再存在?
答案 0 :(得分:2)
系统A在此期间产生的事件会发生什么 期? B会得到它们(何时)B再次启动并运行?
是。消息是持久的,因此当用户重新联机时,它们将在基础结构(MSMQ,SQL Server或您正在使用的任何内容)中排队等候。
是否有一些超时?
除非您使用TimeToBeReceivedAttribute
指定超时,否则在这种情况下不会有任何超时。可能有多少消息排队的实际限制,但没有我知道的时间限制。
如果您决定实际删除B会发生什么,您如何告诉A B不再存在?
B必须明确取消订阅,否则您必须手动从基础结构中删除订阅信息(如果您使用的是NHibernate,则需要RavenDB或数据库)。可能有其他工具允许您通过其4.x平台执行此操作。