クラス変数を使用してRailsのスレッドと通信するのは0Kですか?
キューの使用と比較して、長所または短所はありますか?
これがどの環境でも機能するかどうかはわかりませんが、私の場合は機能しました: Ruby Enterprise + Passenger + nginx + Rails 3
次に例を示します。
# rails runner "ThreadJob.new.run"
class ThreadJob
@@counter = 0
def run
producer = Thread.new do
1.upto 10 do
sleep 1
@@counter+= 1
puts "Producer: #{@@counter}"
end
end
consumer = Thread.new do
sleep 0.5
1.upto 10 do
sleep 1
@@counter-= 1
puts "Consumer: #{@@counter}"
end
end
producer.join
consumer.join
puts @@counter # result should be 0
end
end
別のプロセス内から @@counter を変更すると、これが機能するかどうか疑問に思っています。