私は redis と ruby を使用しておりblpop
、スレッド内で a を発行しようとしているので、リストの着信アイテムを待つことができます。
問題は、ブロック内のコードblpop
が呼び出されないように見えることです。これが私が実行しているサンプルコードです(ruby 1.9.3):
require 'rubygems'
require 'redis'
def start_thread
@thread = Thread.new do
r = Redis.new
r.blpop("test", 0) do |key, message|
process_message(key, message)
end
end
redis = Redis.new
redis.rpush "test", "hello world"
end
def process_message(key, message)
@message = "#{key} was sent #{message}"
end
start_thread
@thread.join
p @message
どんな助けでも大歓迎です!