问题标签 [nservicebus5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ravendb - 具有 RavenDB 持久性清理/DeduplicationDataCleanup 设计的 NServiceBus Outbox
我正在调查一个问题,我们看到使用 NServiceBus 发件箱实现的 RavenDB 实例上的 CPU 使用率已达到最大值。
该设计当前让所有发件箱工作人员在其启动配置中配置重复数据删除数据清理设置。即这些设置:
endpointConfiguration.SetTimeToKeepDeduplicationData(TimeSpan.FromDays(7)); endpointConfiguration.SetFrequencyToRunDeduplicationDataCleanup(TimeSpan.FromMinutes(1));
如果您有多个工作人员正在为系统处理消息,是否应该在每个工作人员上实施清理,或者应该将其视为仅在其中一个工作人员上运行清理过程的 cronjob 或专用系统在环境中那个不是工作者,而是更多的效用角色?
我会想象后者,否则如果您扩展工作人员,他们所有人都会尝试每分钟运行清理过程,或者我是否理解此配置错误地执行清理的方式?
谢谢
unit-testing - NServiceBus 单元测试 ConfigureHowToFindSaga
我想ConfigureHowToFindSaga
在我的 NServiceBus Saga 中测试方法。只是有一个似乎可以避免的问题,我忘记将唯一属性放在 Saga Data 上。
我可以使用 Moq 或类似的,但很难验证 Saga 的独特约束。
谢谢。
nhibernate - 你将如何导出 NServiceBus 的 NHibernate Saga 映射?
我们为我们的 Sagas 使用 NServiceBus 生成的 NHibernatePersistence 映射。我想看看这些映射以帮助诊断问题,并可能作为我们可能需要对这些映射进行一些调整的起点。
使用 FluentNHibernate 之类的东西,我可以使用 ExportTo 方法来转储生成的 hbm 文件。是否有类似的东西可以用来转储 nservicebus 用于我们的 sagas 的默认映射?还是有其他方法可以导出生成的映射?
c# - NServiceBus:消息作为单例
我们目前有一个 Singleton Saga(在此处实现:https ://lostechies.com/jimmybogard/2015/04/17/saga-implementation-patterns-singleton/ )在特定超时后重新发送消息。
这很好用,因为相应的处理程序可以捕获消息并做它的东西。不幸的是,例如在安装日,捕捉 Messagesis 的 Handler 停止了,但 Saga 以其幸福的无知继续产生消息。根据 Handler 不在的时间,队列中充满了消息。由于此消息仅触发满载,因此每次在总线上几乎只有一条消息就足够了。我在这里有几种可能性:
- 最简单的方法是访问队列(以某种方式)并检查消息是否存在。但从我所见,这不可能开箱即用
- 我设置了一个 [TimeToBeReceived]-属性。这将减轻处理程序停机期间的痛苦
- 我在 Saga 中引入了一个 State。处理程序必须在总线上自己放置一条消息,然后由 Saga 处理。这似乎是类似“Saga”的方法,但它依赖于 Handler
最简单的解决方案是有可能将消息标记为单例,但我没有找到任何提示,如何做到这一点。第二种最简单的方法,检查队列,对于给定的接口似乎也不是那么容易。
是否有任何遗漏的可能性,或者是否有一种方法更适合 NServiceBus 背后的心态?
c# - NServiceBus:超时由多个 Sagas 处理
我们目前有一个 NServiceBus 5 系统,其中包含两个重复的 Sagas。由于它们充当调度程序以定期从外部系统中提取多种数据,因此我们使用 Timeouts 来触发此操作:我们创建了一个名为 ExecuteTask 的通用空类,Saga 使用它来处理超时。
另一个 Saga 的定义几乎相同:
超时在两个 Sagas 中得到同等处理:
现在的问题是:由于两个 Sagas 都为 ExecuteTask 请求超时,它被分派给两个 Sagas!更糟糕的是,似乎 Sagas 中的有状态数据被搞砸了,因为两个 Sagas 都在发送两个消息。
因此,似乎超时被发送到所有请求它的 Saga 实例。但是查看示例https://docs.particular.net/samples/saga/simple/并没有关于多个 Saga 实例及其状态的特殊逻辑。
我的假设正确吗?如果是这种情况,让多个 Sagas 请求和接收超时的最佳实践是什么?
c# - 处理程序多次执行问题
Nservicebus 处理程序面临的问题。处理程序执行多次。请在下面找到代码。运行此代码后面临问题,letthandler 类中的处理程序被多次执行。
Lett 处理程序类
行为类
处理程序连接器类
似乎在执行代码之后
等待 context.Publish(context.Message.Instance, this.RetrieveOptions(context)).ConfigureAwait(false); 在 Behavior 类中,lett 处理程序句柄被执行,并且该循环将继续。不确定是什么问题。最近项目参考从 4 更新到 7.2 Nservicebus。有什么建议么?
.net - NServiceBus 5 和 6 兼容性
NserviceBus 6 端点可以向 NServiceBus 总线 5 端点发送消息吗?
我有两个 .Net 项目,一个在版本 6 中定义了一个端点,并将消息发送到在版本 5 中定义的端点。版本 5 中的处理程序没有接收消息,因此我无法让这些端点相互通信。这是因为它们不兼容吗?
nservicebus - 如何使用 AzureStorageQueueTransport 和具有私有访问级别的 Azure 存储帐户配置 NserviceBus
我们将 NserviceBus 与 AzureStorageQueueTransport 和具有公共访问权限的存储帐户一起使用,但现在我们必须使用具有私有访问级别的 Azure 存储帐户。
- 有没有办法在创建端点和发送、发布、接收消息时创建 SAS 令牌和追加。
- NServiceBus 是否对这种要求提供任何支持。
nservicebus - 如何访问 NServiceBus 依赖注入容器?
我正在使用 NServiceBus 5 的默认依赖注入功能。我想在端点配置中注册一个依赖于 IBus 的单例。
前任:
如何使用 NServiceBus 的开箱即用依赖注入解决上述伪代码中的 IBus 实例?