【问题标题】:Masstransit temporary queue捷运临时队列
【发布时间】:2015-06-10 14:59:29
【问题描述】:

我正在开发使用masstransit 和rabbitmq 的客户端应用程序。在应用程序启动时,我正在创建具有唯一名称的新队列,以便通过公共交通(请求/响应模型)与服务器应用程序通信。在应用程序关闭时,我应该删除此队列,但如果客户端应用程序崩溃队列将出现在 rabbitmq 上。

是否可以通过masstransit创建临时队列,当客户端与队列断开连接时rabbitmq会自动删除?

【问题讨论】:

    标签: c# rabbitmq masstransit


    【解决方案1】:

    您可以使用?temporary=true 查询字符串参数创建一个临时队列。

    使用 RabbitMQ,您还可以使用* 作为队列名称来动态创建队列名称。如:

    x.ReceiveFrom("rabbitmq://localhost/vhost/*?temporary=true");
    

    这将创建一个具有随机生成名称的临时队列,该名称在连接关闭时被删除。

    【讨论】:

    • 可以加前缀吗?类似“rabbitmq://localhost/vhost/app-*?temporary=true”
    • 那将是一个很好的补充,我会在 GitHub 中发布一个问题来跟踪它。
    • @chris-patterson 这在 MT v3 下仍然有效还是有不同的机制?
    • 对于 MT3,使用没有队列名称的 ReceiveEndpoint 重载来生成临时队列。消费者将按预期绑定到队列和交换。管理端点也使用这种方法。
    猜你喜欢
    • 2011-05-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 2018-07-15
    • 2013-03-26
    • 2019-10-01
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多