2017-06-28 10 views
3

遅延ジョブキューがあり、特に遅い実行タスクが含まれています。これは専用の従業員専用のセットで処理されるため、作業パイプラインの残りの部分にボトルネックが発生するリスクは少なくなります。 遅延ジョブ除外キュー

RAILS_ENV=production script/delayed_job --queue=super_slow_stuff start

は、しかし、私は、その後もうまくいけば(などそれらの名前が頻繁に変更される/あまりにも追加)別々にそれらを指定しなくても、他のすべてのキューの一般労働者のプールをしたいです。似て何か:

RAILS_ENV=production script/delayed_job --except-queue=super_slow_stuff start

私は、ワイルドカード* charecterを使用することができますが、私は、これは超スロージョブあまりにもピックアップに2番目のワーカーを引き起こす想像しますか?

これに関するご提案はありますか?

答えて

1

すべてのキューでアプリケーションのグローバル定数を定義できます。

QUEUES={ 
    mailers: 'mailers', 
    etc.. 
} 

その後、あなたにこの定数を使用するには、方法はdinamically

system("RAILS_ENV=production script/delayed_job --pool=super_slow_stuff --pool:#{(QUEUES.values-[super_slow_stuff]).join(',')}:number_of_workers start") 

object.delay(queue: QUEUES[:mailers]).do_something 

を呼び出し、delayed_job_argsを構築しよう遅らせます

関連する問題