【发布时间】:2020-05-29 08:41:06
【问题描述】:
我有一个兔子使用 consumer.rb 和 publisher.rb 工作的 RabbitMQ。如果我运行
ruby consumer.rb
然后
publisher.rb
我得到了正在发布的数据(来自另一个类的数据)。当我运行 publisher.rb 时,数据在 ruby consumer.rb 上打印如下:
Test New Data
1142.5186392493372
我需要这两个脚本不断运行,以便发布者不断推送数据(@devise.value),我会不断看到上述输出。我尝试使用 Daemon 创建一个新的服务器文件并运行 ruby server.rb start。但这确实会继续运行 publisher.rb,但不会一直运行,因此它会发布数据。另外我怎样才能让这个 RabbitMQ ruby 应用程序将数据发布到另一个基于 web 的 rails 应用程序?
publisher.rb
需要'兔子' 需要“守护进程”
类 BunnyPublisher
def connection
conn = Bunny.new
conn.start
end
def channel
connection.create_channel
end
def q
channel.queue("que")
end
def exchange
channel.default_exchange
end
def publish(data, q)
exchange.publish(data, routing_key: "que")
sleep(5)
connection.close
end
服务器.rb
require 'daemons'
Daemons.run('publisher.rb')
谢谢
【问题讨论】:
-
对,我添加了一个 while 循环让发布者继续运行直到停止。 i = 0 而 i
-
问题解决了吗?也许更新您的问题,让我们知道您是否需要帮助:)
标签: ruby-on-rails ruby rabbitmq daemons bunny