2016-09-08 41 views
0

sidekiqで実行された最初のジョブが実行された後でジョブを実行する方法を教えてください。たとえば、次の 私はそれがまだ進行中である間、私は何が起こっている動的Sidekiqは他のジョブが実行された後にジョブを実行します

GoodWorker.perform_ascyn(params) #=> JID-eetc2 

等 同じワーカーに再びジョブを実行してきました今朝

GoodWorker.perform_async(params) #=> JID-eetc 

のための最初の仕事をトリガー今のところ、サイドキーキはいつもジョブを処理していますが、 は一度に1つのジョブを実行する方法はありますか?

+0

sidekiqは並列実行用に構築されていますが、キューを順次処理する方法はありますか? –

答えて

1

短い回答:いいえ。

長い答え:mutexを使用すると、一度に1つのワーカーインスタンスしか実行されないことを保証できます。クラスタで実行している場合は、Redisやその他のメディアを使用してmutexを維持する必要があります。それ以外の場合は、これらのジョブを独自のキューに入れ、そのキューのみを監視するSidekiqの別のインスタンスを起動し、並行性は1になる可能性があります。

+0

私の問題に答えることができる他の宝石を提案できますか?ありがとう。 –

+0

@IsmaelEriあなたは、Sidekiqの代わりに何か、またはSidekiqでこの機能を有効にできるものを意味しますか? – mwp

関連する問題