我在 Heroku 上有两种进程类型:Ruby 中的 web dyno 和 Node.js 中的 worker。我正在使用 RabbitMQ 插件(目前是测试版)将消息从 Ruby 传递到 Node。Node 正确连接和消费,而Ruby 只要是第一个连接/创建队列就正确连接和发布。
显然,当您尝试创建一个已经存在的队列时,Carrot 会抛出一些有趣的错误,这就是我发现无法传达我的消息的原因(我本可以在昨晚测试时发誓它有效)是我在我的 Ruby 之前开始了我的 Node 进程。
由于我在 Heroku 上,我将有多个 Ruby 和 Node 线程同时工作,并且它们每个都需要支持成为第一个启动队列并连接到现有队列的人,没有问题。
这让我想到了我的问题:
如何使用 Ruby 连接到现有的 RabbitMQ 队列,以便向已经连接并等待接收消息的消费者发布消息?