Upload
akira-miki
View
301
Download
2
Embed Size (px)
Citation preview
例えば• 突っ込むQueueを動的に変える
• sidekiq起動条件変えてプロセスレベルで割る
• こういうのを使う
• https://github.com/socialpandas/sidekiq-priority
例えば• サービス全体で並列実行数を制御するのであれば
• redisでsemaphoreを管理したり • こういうやつも(時間があったら読む)
• https://github.com/dv/redis-semaphore • https://github.com/brainopia/sidekiq-
limit_fetch • プロセス毎の同時実行数は管理したいのであれば
• プロセス内にsemaphore作ってQueueのpopをblockして積み直しになるのかな?
例えば• 複数のjob完了を待って発火するもの
• 特定のjob郡が完了していることを待つwaiting jobづくり
• 逐次にjobが発火するstyle • continuation passing styleで次のjob渡す
依存関係の定義が自明で集約されており、全体感がつかみやすいものが良い。
例えば• background jobにworkflowでかいけつする
• https://github.com/chaps-io/gush • https://github.com/thebadmonkeydev/
sidekiq-workflow • そもそも別の仕組み使う
• rundeck • http://rundeck.org/
• rukawa • https://github.com/joker1007/rukawa
例えば• sidekiq使ってたらsidekiq proにしちゃう
• やっているのは別のqueueにコピーしてるだけ(多分) • Proのお話はsumyappさんのslide参照が良さそう
• http://www.slideshare.net/SumiKoichiro/sidekiq-pro1-rb-29th-shinjukurb
• 処理の冪等性担保する • けどPush Notificationとかできないので、jobの中で
途中実行できるようにする • 依存関係のあるJobはどう途中再開させるか?
• daemon作って監視させるしか無いか?