Rebus OneWayClient 如果不存在则创建队列

标签 rebus

当配置为单向客户端(RabbitMq 和 Azure)时,我在使用 rebus 发送消息(而不是发布)时遇到错误,因为队列必须存在。

如果在发送消息之前不存在队列,OneWayClient 有没有办法创建队列?

最佳答案

Rebus 的 RabbitMQ 传输有意不创建目标队列(如果目标队列不存在),而是抛出异常。

这样,它的行为就可以与 MSMQ、Azure Service Bus、Amazon SQS 等其他传输保持一致,因为如果您不小心发送到不存在的队列,它们都会抛出异常。

这种行为背后的原因是,如果您发送到不存在的队列,它几乎总是一个错误 - 因为,当您向队列发送消息时,这表明您关心该消息,你关心某个特别的人会拥有它,但如果那个特别的人不存在,你很可能想尽快知道它。 🙂

关于Rebus OneWayClient 如果不存在则创建队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62680137/

相关文章:

synchronization - Rebus - 发送命令并等待处理程序

.net - 使用 Rebus 发布消息且数据库连接已列入事务范围时,机器崩溃

Rebus Sagas、Revisions 和 DeferredMessages

c# - 使用 NHibernate 和 CaSTLe WCF 工具在 WCF 上下文中处理 Rebus 消息

Rebus 断路器的实现?

servicebus - 使用 Rebus 提供持久消息的 Pub/sub

c# - 总线实例生命周期和最佳实践

c# - 部署到 Azure 时不会调用消息处理程序

c# - 使用 Rebus 时是否有一种干净的方法来获取消息(传输)ID?