我的设置如下: 1 接收请求并在队列(nsq)中写入消息的微服务和必须读取队列中的消息并根据它们执行某些操作的第二个微服务。
我对 ruby on rails 中的 nsq 概念不熟悉。我已经从这里安装了 nsq:http: //nsq.io/overview/quick_start.html。我还使用这个 gem 来促进消息推送:https ://github.com/wistia/nsq-ruby 。
我已经能够将消息排队。这部分很容易。
问题:
我如何始终在第二个微服务中侦听以找出何时推送某些内容以便我可以使用它?
这就是我推送消息的方式:
require 'nsq'
class NsqService
attr_accessor :producer, :topic
def initialize(topic)
@topic = topic
@producer = producer
end
def publish(message)
producer.write(message)
end
private
def producer(nsqd='127.0.0.1:4150')
Nsq::Producer.new(
nsqd: nsqd,
topic: @topic
)
end
end