Мне нужен бесконечный цикл поверх eventmachine, который постоянно читает очередь redis. ниже мой код. рекурсия - правильный способ сделать это? Я пробовал loop do
цикл, но не смог заставить его работать таким образом.
require 'em-hiredis'
def read
d = @redis.blpop 'queue', 0
d.callback do |_, value|
p value
read
end.errback do |e|
p e
EM.next_tick { read }
end
end
EM.run do
@redis = EM::Hiredis.connect
read
end
EM.next_tick
call выполняет то, что я описал, это хороший способ. - person skalee   schedule 22.12.2012