我有两个Ruby脚本:loop.rb
和event.rb
。当我在event.rb
中运行循环时运行loop.rb
时,前者必须捕获后者并改变其行为。
我可以使用很多黑客;例如,loop.rb
会监视某些env-var,而event.rb
会更改它。但我觉得它有点脏。
在Linux中将消息从一个Ruby脚本发送到另一个Ruby脚本的正确方法是什么?
答案 0 :(得分:4)
我认为最好的选择是使用ZeroMQ:
https://github.com/zeromq/rbzmq
require "zmq"
context = ZMQ::Context.new(1)
puts "Opening connection for READ"
inbound = context.socket(ZMQ::UPSTREAM)
inbound.bind("tcp://127.0.0.1:9000")
outbound = context.socket(ZMQ::DOWNSTREAM)
outbound.connect("tcp://127.0.0.1:9000")
p outbound.send("Hello World!")
p outbound.send("QUIT")
loop do
data = inbound.recv
p data
break if data == "QUIT"
end