问题标签 [rebus]
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.
message - Rebus 实施
我必须创建一个 POC 来证明 Rebus 将适用于这种情况 -
多个订阅者监听事件并相应地处理它们。如何使用 BuiltInContainer 和配置进行配置?我是否需要配置多个队列和多个端点以及容器的单个实例或多个?
.net - 在 ReBus 中的消息处理期间立即执行回复
我正在使用一个 ASP.NET Web 项目,该项目提供一个带有按钮的视图,这些按钮触发消息通过 MSMQ 发送到 Rebus。消息处理程序是长时间运行的操作(15-30 分钟),我希望 rebus 命令处理程序在处理消息期间向 Web 发送更新。
在我的 Web 应用程序中,我有一个 CommandStatusReply 处理程序,它将通过 SignalR 将状态消息推送到客户端。一切正常,除了在处理 ImportProducts 消息时“批量”发送所有 CommandStatusReply 消息。我希望他们立即发送。这可能吗?在那种情况下,我错过了什么?
我尝试过 Bus.Send()、Bus.Reply() 和 Bus.Publish(),还尝试将 Bus.Reply/Send 包装在 TransactionScope(TransactionScopeOptions.Suppress) 中,但无济于事。
rebus - Rebus 中相同消息类型的两个发布者
是否可以有两个相同消息类型的发布者和多个订阅者订阅他们想要的一个?如果是,我该如何实现?请建议。
rebus - 在 Rebus 中延迟发布消息
我想推迟要发布的消息,但 Rebus 将消息返回到发送队列。我期待它将它们发送给实际的收件人。
我在这里做错了什么还是我理解延迟功能错误?
.net - Rebus 事件处理程序中的嵌套 TransactionScope
根据此,Rebus 不支持 DTC:https ://github.com/rebus-org/Rebus/wiki/Transactions但根据此 https://github.com/rebus-org/Rebus/wiki/Automatic-retries- and-error-handling Rebus 确实使用了 TransactionScope。我想这意味着总是使用不能跨越多台机器或连接的轻量级事务。
就我而言,我想要一个 EventHandler,它首先向 Firebird 写入内容,然后写入 RavenDB。Firebird 和 RavenDB 都能够参与分布式事务。但它们在 Rebus 创建的 TransactionScope 中使用。
我是否必须在 EventHandler 中创建一个带有“Require New”的新嵌套 TransactionScope,以便 Firebird 和 RavenDB 通过 DTC 一起提交。或者我是否必须为 Rebus 执行 DTC 才能使其正常工作。
作为替代方案,我可能只需要按照 Rebus wiki 中的建议进行每次写入 IdemPotent。
我想这个问题比 Rebus 更笼统。当某些连接允许而某些连接不允许时,这实际上是关于 TransactionScope 的行为和对 DTC 的提升。
rebus - 使用 configsection 将消息从同一程序集映射到 Rebus 中的不同端点
我在共享程序集中有我的消息类型,Domain.Messages
我需要使用.config
文件中的 RebusConfigurationSection 将消息从该程序集映射到不同的端点。
像这样:
那是行不通的,但是有可能以某种方式还是我必须使用实现IDetermineMessageOwnership
并处理那里的路由?
c# - Rebus 和 RabbitMQ - 使用多个独立的 Rebus 实例?
我有一个 Rebus Servicebus 控制台应用程序在我的测试环境中作为 Windows 服务运行。服务总线是这样创建的:
应用程序设置如下所示:
如您所见,它正在与 RabbitMQ @localhost 交谈。
到目前为止一切顺利,这就像一个魅力。
但是,我们需要在同一台服务器上设置另一个 Servicebus 实例(它是一个测试服务器,我们有多个分支),现在我遇到了一些问题。
第二个实例的 appsettings 如下所示:
当我开始向第一个服务发送消息时,我可以看到它们也被第二个服务接收,我认为这是因为它们使用相同的 RabbitMQ 实例@localhost?
我不是服务总线专家,我认为只使用不同的队列就可以解决这个问题,但事实并非如此。
我读过一些关于虚拟主机的东西,这是要走的路吗?
我想做的事:
向 service1 发送消息 -> 保存到特定数据库
向 service2 发送消息 -> 保存到另一个数据库
实际发生的情况:
将消息发送到 service1 -> service1 AND service2 将它们拾取并保存在两个数据库中。
有人可以指出我正确的方向吗?:)
rebus - 使用 rebus 发布时如何捕获上下文信息
我想在将消息发布到 rebus 时捕获有关当前用户的信息,以便处理程序和 saga 可以透明且正确地访问应用程序用户信息。我在源代码中有点迷失了,但基本上我正在尝试设置几件事:
消息发布时运行的钩子,并将当前用户信息放入标头
当收到消息并重写 ClaimsPrincipal.Current 时在 worker 中运行的钩子。
处理完成时在工作人员中运行并重置 ClaimsPrincipal.Current 的钩子。
任何建议,将不胜感激。
rebus - Rebus & Structuremap 超时问题
我看到超时永远不会触发的问题。我通过 IContainerAdapter.GetHandlerInstancesFor 的实现看到调用,看起来像 rebus 内部。我没有为这些电话返回任何东西这一事实会不会把事情搞砸?如果是这样我需要返回什么?
rebus - Implementing IStoreSagaData which arcives
I'm finding that IStoreSagaData.Delete is not called on when a saga calls MarkAsComplete during the first message. Is this by design? This makes it impossible to keep an archive of sagas which have completed.