![](/img/trans.png)
[英]Should I be using EM::Synchrony::Multi or EM::Synchrony::FiberIterator with Goliath?
[英]how to use EM::Synchrony::Multi with redis?
我正在嘗試並行執行幾個redis查詢,但出現錯誤:
/var/lib/gems/1.9.1/gems/em-synchrony-1.0.2/lib/em-synchrony.rb:53:in `resume':
dead fiber called (FiberError)
這是代碼:
require 'em-synchrony'
require 'redis/connection/synchrony'
require 'redis'
redis = EM::Synchrony::ConnectionPool.new(size: 4) do
Redis.new
end
EM.synchrony do
multi = EM::Synchrony::Multi.new
multi.add :a, redis.alpush('foo', 1)
multi.add :b, redis.alpush('foo', 2)
res = multi.perform
p res
EM.stop
end
請幫忙
使用Eventmachine特定的em-hiredis
gem代替默認驅動程序。
gem install em-hiredis
require 'em-synchrony'
require 'em-synchrony/em-hiredis'
redis = EM::Synchrony::ConnectionPool.new(size: 4) do
EM::Hiredis.new
end
在使用EM::Synchrony
任何地方,通常建議使用em-synchrony
隨附的特定於同步的庫。 這就是為什么語句em-synchrony/em-hiredis
而不require em-synchrony
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.