gpt4 book ai didi

ruby 纤维和 faye

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:10 28 4
gpt4 key购买 nike

我有一个带有 EventMachine、Fibers 和 faye 的简单脚本

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' 一切都很好。但我需要这个异步。

ruby-1.9.2-p290 [x86_64]

最佳答案

答案是使用同步连接池。

关于 ruby 纤维和 faye,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554567/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com