我正在尝试为 NServiceBus 解决方案实现一个简单的 POC。所以我实现了 3 个端点,我们称它们为 A、B 和 C。A 自托管在控制台应用程序中,B 和 C 是 NSB 主机。在 A 中,我发送一个命令 DoFoo,在 B 中,我正在处理 DoFoo,在处理程序中,我发布了几个 BarOccurred 类型的事件,如下所示:
for (int i=0; i<5; i++)
{
Bus.Publish(new BarOccurred);
Thread.Sleep(1000);
}
在 C 中,我通过写入发生 Bar 的控制台来订阅和处理它。
我希望每次 B 发布消息时(即每秒)都会看到在 C 中处理的消息。但是我看到的行为是,只有在命令处理程序退出后(在 5 次迭代后),C 才会收到所有 5 条消息。
这是默认配置的预期行为吗?为了让消息在发布后立即发送和处理,我需要声明什么吗?