问题标签 [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.

0 投票
1 回答
1010 浏览

rebus - 使用 T-SQL 将 Rebus 消息插入 SQL Server

我想通过向该应用程序的数据库添加触发器来使用 Rebus 与第三方应用程序集成,以便触发器以 Rebus 消息格式插入记录,其中包含有关数据库更改的信息(操作类型:插入、更新、删除、表名和行 ID)。请告诉我有什么方法可以轻松做到这一点,或者我需要通过查看https://github.com/rebus-org/Rebus/blob/master/src/Rebus/Transports/Sql/SqlServerMessageQueue自己创建存储过程.cs发送方法?

或者,我可以使用触发器中的参数触发 exe,但它不是事务性的。

我也见过这个问题https://github.com/rebus-org/Rebus/issues/119但我想这是个死主意。

也许还有其他推荐的方法?

更新:我刚刚意识到 Rebus 消息的主体是序列化的,所以在 SQL 中这样做会很疯狂(如果没有 SQL-CLR 甚至不可能)所以也许唯一的方法是使用 ReceiveMessage 方法创建自定义传输,以我自己的方式接受消息格式?

提前致谢 :)

0 投票
2 回答
383 浏览

sql-server - ReBus Sql Server 消费者轮询控制

据我了解,ReBus 消费者以两种模式轮询数据库中的消息。如果消息存在则快速,如果在一段时间内没有消息可用则较慢。

有没有办法调整它,是否有地方可以更详细地了解它的工作原理。

我唯一能找到的是这个——“增加了将队列轮询退避策略配置为低延迟模式的能力——感谢 hagbarddenstore。”

谢谢!

0 投票
1 回答
81 浏览

c# - 从总线事件中检索 SagaData 实例

我正在尝试在我想要的地方添加一个 MessageSent 事件:

  1. 查看消息是否是从 saga 处理程序发送的。

  2. 如果我们在一个 saga 中,访问相应的 SagaData 实例。

对于第一点,我知道我必须检查 MessageContext 是否有一个带有键“SagaContextItemKey”的项目,但是我在从事件内部获取 saga 数据实例时非常迷茫。这甚至可能吗?

0 投票
1 回答
851 浏览

rebus - Rebus中必须按顺序传递的消息的策略

我将 Rebus SQLTransport 与 XML 序列化消息一起用于与 SQL Server 集成。消息表示在 SQL Server 中完成的更改。因此,消息传递的顺序是必不可少的。

这是因为例如 message1 可能包含在 message2 中引用(通过 id)的对象。另一个例子是 message1 可能包含一些对象的删除请求,该请求需要从 message2 接受新对象。

将消息聚合成一条消息会非常复杂,因为消息是由触发器生成的。

拥有消息幂等性和一个工人我想这会起作用,除了如果发生错误并且消息将被移动到错误队列中将不起作用的事实。由于验证或业务逻辑异常,该错误很可能发生。正因为如此,我相信只有人类才能解决消息问题,并且在此之前不应传递其他消息。所以我想征求意见,在这种情况下最好做什么。据我所知,重试次数不能设置为无穷大,所以我应该停止处理程序内部的服务,直到问题被人解决?

提前致谢

0 投票
1 回答
153 浏览

rebus - 用新的交通方式扩展交通

有没有人尝试为 Rebus 实施新的传输?涉及多少工作?例如需要实现的接口数量?假设使用了一种合理的传输机制,例如 Greg Youngs 事件存储。

谢谢你。

0 投票
1 回答
709 浏览

rebus - Rebus - 延迟消息,正是一个消息处理程序

我想知道 Rebus 服务总线是否可以处理以下用例:

  • 为将来的日期排队消息
  • 如果有一条消息 ProcessInvoice 的上下文如 Customer Id: 1000,我们可以让一个处理程序执行该消息吗?因此,如果消息重复,则不会再次处理。

谢谢

0 投票
1 回答
758 浏览

publish-subscribe - Rebus 无法订阅具有相同“消息”值的多个端点

是否有任何理由不能在发布/订阅协议中使用 Rebus,订阅从共享程序集中发布消息的多个端点?

当我尝试使用此配置 Rebus 订户时:

抛出异常

抛出的异常是这样的:

这对我来说似乎有点奇怪。让 Rebus 订阅多个发布者似乎是一个完全有效的用例——其中一些发布者共享一个公共 POCO 程序集。

这背后的原因是什么......(更重要的是)有没有办法在 Rebus 中实现这一点?

而且:我期待 Rebus 将此异常添加到日志中(我使用 log4net),但似乎没有记录在 Rebus 配置期间引发的异常。这一定是个错误,对吧?

0 投票
1 回答
337 浏览

msmq - Rebus 是否支持通过 HTTP/HTTPS 使用 MSMQ?

我已按如下方式配置订阅:

但是当总线启动并发送订阅时,这就是我得到的:

我已经确认有问题的两台服务器可以通过 HTTP/HTTPS 在 rebus 之外相互发送消息。

0 投票
1 回答
449 浏览

rebus - saga 中请求/回复的自相关

我想问一下,当我为 Request/Reply 做 saga 时,我是否理解正确,感谢这个https://github.com/rebus-org/Rebus/issues/105我可以ConfigureHowToFindSaga留空?

如果是真的,最好在 Wiki 页面中提及它,以及在适配器中注册 saga 的需要 :)

下面的代码似乎可以工作,请您看看是否可以?

0 投票
1 回答
114 浏览

rebus - 是否可以在 BeforeTransportMessage 事件中提交事务

如标题所示,我想问是否可以在 BeforeTransportMessage 事件中提交事务,例如,如果 TransportMessage 中出现特定标头,我可以将其包装在另一条消息中并发送到其他地方并阻止 Rebus 进一步处理。

我没有找到任何使用该事件的现实生活示例,您是否可以分享一些东西?

提前致谢 :)