こんにちは、sidekiqを使用して2つの別々のredisインスタンスで作業しますか?
私は2つの別々の、しかし関連するアプリがあります。彼らは両方とも独自のバックグラウンドキューを持つ必要があります(readys:separate Sidekiq & Redisプロセス)。しかし、時折、のキューにジョブをプッシュできるようにしたいと考えています。app1
からです。 app1
は、既存のSidekiq/Redisのスタック持っていなかった場合は、単純なキュー/プッシュ観点から
# In a process, far far away
# Configure client
Sidekiq.configure_client do |config|
config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' }
end
# Push jobs without class definition
Sidekiq::Client.push('class' => 'Example::Workers::Trace', 'args' => ['hello!'])
# Push jobs overriding default's
Sidekiq::Client.push('queue' => 'example', 'retry' => 3, 'class' => 'Example::Workers::Trace', 'args' => ['hello!'])
私はすでに呼び出されているであろうことをSidekiq.configure_client
とSidekiq.configure_server
app1
から、ここに何かが起こる必要のあるステップがあります。
明らかに、Sidekiq内部からシリアル化と正規化コードを直接取り込み、手動でapp2
のredisキューにプッシュすることはできますが、それは脆弱な解決策のようです。私はClient.push
機能を使用できるようにしたいと思います。
私は私の理想的なソリューションのようないろいろ書いだろうとします
SidekiqTWO.configure_client { remote connection..... }
SidekiqTWO::Client.push(job....)
あるいは:
明らかに少し冗談$redis_remote = remote_connection.....
Sidekiq::Client.push(job, $redis_remote)
が、それは私です理想的なユースケース。
ありがとうございます!
私はこれに200ポイントの賞金を提供しています - これは、サイドキッククライアントが高可用性と障害のために2つの異なるredisインスタンスにメッセージを「ラウンドロビン」することを可能にする点で、 -overover。 –