3
これは、Redis接続プールをSinatra Synchronyで処理する正しい方法ですか?Sinatra Synchrony with Redis接続プール
マイgemfileは次のようになります。
gem 'sinatra-synchrony'
gem 'hiredis'
gem 'redis'
シナトラサーバファイルは、古典的なスタイルのアプローチを使用し、一般的にそのように見える:
require 'sinatra'
require 'sinatra/synchrony'
require 'redis/connection/hiredis'
require 'redis/connection/synchrony'
require 'redis'
redis = EventMachine::Synchrony::ConnectionPool.new(size: 5) do
Redis.new(path: '/tmp/redis.sock')
end
get/do
# lots of redis reads and writes
end
私は、同じサーバーアプリケーションの複数のインスタンスを起動しますそれぞれ別のポートの下にあり、nginxを使ってそれらの間の負荷を分散します。
これは、Sinatraサーバーとの接続プールRedisの適切なソリューションですか?ここで
このコードをお寄せいただきありがとうございます。 @ redis.multi {...}を熟読することはできませんが、それはちょうどハングアップします。私はそれが開始エンドのexecコマンドのための別の接続を使用するためだと思う... –
私はマルチコールを追加するための例を更新したばかり、それは私のために完全に動作します。あなたが間違っていたのは、ブロックへの引数として渡された接続を使う必要があるということです。 – Schmurfy