3
我有EventMachine的,纖維和王菲簡單的腳本紅寶石纖維和王菲
require "faye"
require "em-synchrony"
require "hiredis"
require 'redis'
require 'redis/connection/synchrony'
faye = Faye::Client.new 'http://localhost:9292/faye'
redis = Redis.new
EM.synchrony do
faye.subscribe('/event_1') do |message|
Fiber.new do
puts "Event 1 start"
user_id = redis.hget 'myhash', message.client_id
puts "Event 1 finish"
end.resume
end
faye.subscribe('/event_2') do |message|
Fiber.new do
puts "Event 2 start"
user_id = redis.hget 'myhash', message.client_id
puts "Event 2 finish"
end.resume
end # subscribe
end #EM.synchrony
event_1至上,event_2旁邊(非常小的區間)
當我運行它和事件的激發。我總是有這樣的輸出:
Event 1 start
Event 2 start
Event 2 finish
那就是所有。
事件1在哪裏完成?
我做錯了什麼?
UPD:如果我刪除異步刪除require 'redis/connection/synchrony'
所有的作品很好。但我需要這個異步。
紅寶石1.9.2-P290 [x86_64的]