Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
background jobで 気をつけないといかんところ
Search
threetreeslight
June 22, 2016
Technology
0
65
background jobで 気をつけないといかんところ
@threetreeslight
Repro Inc.
shinjukurb #37
May 25, 2016
threetreeslight
June 22, 2016
Tweet
Share
More Decks by threetreeslight
See All by threetreeslight
実録 採用一投入魂
threetreeslight
0
21
Bottleneck is You
threetreeslight
0
110
Japan Office Society オフィスはスタートアップの成長を助長するのか?阻害するのか?
threetreeslight
0
120
スタートアップは見極められたくない
threetreeslight
0
47
VPoEの責務とは
threetreeslight
0
79
CiecleCIでもくもく会を支える技術
threetreeslight
0
55
Ego vs higher self
threetreeslight
0
45
Performance Hack 101
threetreeslight
0
95
複数のスタートアップを 通して得た失敗と学び
threetreeslight
0
74
Other Decks in Technology
See All in Technology
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
2
260
SREには開発組織全体で向き合う
koh_naga
0
340
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
130
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
220
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
330
乗りこなせAI駆動開発の波
eltociear
1
1.1k
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
200
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
790
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
530
生成AI時代におけるグローバル戦略思考
taka_aki
0
190
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
190
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
The Cult of Friendly URLs
andyhume
79
6.7k
For a Future-Friendly Web
brad_frost
180
10k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Docker and Python
trallard
47
3.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Designing Experiences People Love
moore
143
24k
RailsConf 2023
tenderlove
30
1.3k
Transcript
background jobで 気をつけないといかんところ @threetreeslight Repro Inc. shinjukurb #37 May 25,
2016
※注意※ こういうときどうしました? 話です。sidekiq寄りです。
@treetreeslight Repro
What’s Repro?
マーケティングツール
カジュアルな改善アクション
献立 • 優先順位の制御 • 並列実行数・リソースの制御 • 実行順序の制御 • 信頼性の担保
優先順位の制御
background jobにまわしてユーザー体 験改善しまくりヒャッハー!
重要じゃないjobが積まれてす ぎて消化しきれない、、、
さらに • SidekiqなんでQueueで分けるが、、、 • でも共通処理として定義されたjob、呼び出 し元によって優先順位かわるんだけどどうす る?
そんなQueueのPrioritize どうします?
例えば • 突っ込むQueueを動的に変える • sidekiq起動条件変えてプロセスレベルで割 る • こういうのを使う • https://github.com/socialpandas/
sidekiq-priority
並列実行数・リソースの制御
jobで並列化しまくれば無限に スケール!!
connection数, deadlock, OOM…
そんなときどうやって 並列実行数を制御します?
例えば • サービス全体で並列実行数を制御するのであれば • redisでsemaphoreを管理したり • こういうやつも(時間があったら読む) • https://github.com/dv/redis-semaphore •
https://github.com/brainopia/sidekiq- limit_fetch • プロセス毎の同時実行数は管理したいのであれば • プロセス内にsemaphore作ってQueueのpopをblock して積み直しになるのかな?
実行順序の制御
処理を高速化するためにjobを分割 して並列実行するべさ!
job間の依存関係どうしよう
そんなときどうやって 実行順序を制御します?
例えば • 複数の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
信頼性の担保
background job だいぶこなれてきた!!
process downや 中断に強くしなければ
そんなときどうやって job実行の信頼性 を担保しますか?
例えば • sidekiq使ってたらsidekiq proにしちゃう • やっているのは別のqueueにコピーしてるだけ(多分) • Proのお話はsumyappさんのslide参照が良さそう • http://www.slideshare.net/SumiKoichiro/
sidekiq-pro1-rb-29th-shinjukurb • 処理の冪等性担保する • けどPush Notificationとかできないので、jobの中で 途中実行できるようにする • 依存関係のあるJobはどう途中再開させるか? • daemon作って監視させるしか無いか?
そんなつらみを乗り越えたい そんなアタナに
WE ARE HIRING NOW!!! https://www.wantedly.com/companies/repro/projects