我使用NserviceBus为我的主应用程序实现一些插件。主要应用是一个网站。在启动期间,插件需要从主应用程序(即所有用户)检索一些数据,然后处理对此数据的任何更改。为了始终拥有最新数据。
我看到的问题是我们异步预加载数据,所以虽然预加载我无法处理来自主应用程序的任何更改,因为插件仍未设置。
如何使用NserviceBus实现此方案?我的意思是如何在预加载完成之前延迟消息处理。这似乎是常见的问题,所以解决方案应该很简单,但我找不到一个简单的方法。
答案 0 :(得分:1)
难道你不能在NSB中使用Saga跟踪所有预加载,然后确保所有处理程序在尝试处理应用程序更改消息之前验证没有Saga正在进行中吗?
答案 1 :(得分:0)
您可以手动配置总线,并在加载数据后启动它:
bus = Configure.With()
.StructureMapBuilder(ObjectFactory.Container)
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.MsmqSubscriptionStorage()
.Sagas()
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
这只是一个例子。你必须自己编辑配置。
对于替代方案,请发布有关数据性质的更多详细信息以及使用它们进行的转换。