[英]Keep publishing data via publisher RabbitMQ (ruby bunny)
我有一個兔子的 RabbitMQ 使用 consumer.rb 和publisher.rb 工作。 如果我跑
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 應用程序?
發布者.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
服務器文件
require 'daemons'
Daemons.run('publisher.rb')
謝謝
不需要惡魔。 我將原始問題中的 Publisher 類代碼更改為當前的類代碼。 如上所述,我添加了一個 while 循環。
運行發布者的 ruby 文件:
i = 0
while i < 1
data = {
weight: @devise.value,
pressure: @devise.value
}
m = data.to_json;
@pub.publish(m, routing_key: @q) // @pub: Publisher class
end
在發布者類中:
def publish(data, q)
exchange.publish(data, routing_key: "queue_name") //exchange another method
sleep(5) //Publish every 5 seconds
connection.close
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.