我正在使用NServiceBus向后端系统发送订单(每个命令一个订单).每个订单都有一个客户(父母).成功保存订单后,后端系统会发布"订单已接受"事件.该事件有多个订户,其中一个是文件生成器组件,它生成要由第三方使用的XML文件.此文件是按客户生成的.由于每次发布"订单接受"事件时发布的事件都处于订单级别,因此文件组件会为客户创建整个文件.
NServiceBus中是否有一种方法可以在订阅者处对事件进行分组,这样,如果同一个客户有多个订单,我们可以减少文件生成器运行的次数?
我们的一个想法是让用户在一段固定时间内休眠,当它被唤醒时,它可以将消息分组到客户的队列中,并为每个客户生成一次文件.这听起来像个好主意吗?
提前致谢.
我正在尝试找到一种方法来按照发件人发送的顺序处理邮件,因为NServiceBus不保证邮件将按特定顺序处理.
发件人是一个发布createOrder和reviseOrder命令的订单系统.发件人允许用户向同一订单提交多个修订版,因此队列中可以同时包含修订版4和修订版3.每个修订版都有一个与之关联的修订号和原因代码,这些代码驱动了一些业务逻辑,因此我们不能忽略任何修订或至少部分原因.
我有几个想法如下 -
将修订号存储在目标记录中.发件人在每个修订消息中发送其修订号.处理程序比较发件人和目标修订号,如果匹配,则更新记录,否则将消息放在队列末尾.使用此方法,如果修订版2消息失败并进入错误队列,则永远不会处理修订版3.
发件人发送每个修订消息的所有修订的所有原因代码的历史记录.因此,如果修订版2消息失败,则修订版3消息将具有所有原因代码.这些原因代码将记录在目标中,但可能不会出现与先前修订原因代码相关联的任何业务逻辑.
我们如何为这种情况设计?
还有关于如何处理失败的修订消息的任何想法?
一些指导非常感谢.
谢谢.
我们在Azure中有一个网站,我们希望在网站上缓存内容.将更新内容的应用程序将在Azure之外.我们让这个场景与共享缓存一起使用.但是,共享缓存被认为是一项遗留功能,因此我们希望了解其他解决方案,包括使用角色内缓存.缓存的内容非常小,不应超过1 MB,并且将由C#代码使用.
我们可以使用辅助角色在Web角色或专用缓存中使用共存缓存.
我们使用角色内缓存的问题是:
如何从外部应用程序更新共存缓存?
如果有办法从外部应用程序更新共存缓存,可以使用缓存通知使所有共存缓存节点无效,对吗?
我们现在使用超小型Web角色实例 - 我们是否需要升级到小型/中型实例?
针对我们的场景,专用缓存更好吗?
提前致谢.
caching azure shared-cache azure-worker-roles azure-web-roles