Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
background jobで 気をつけないといかんところ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
threetreeslight
June 22, 2016
Technology
66
0
Share
background jobで 気をつけないといかんところ
@threetreeslight
Repro Inc.
shinjukurb #37
May 25, 2016
threetreeslight
June 22, 2016
More Decks by threetreeslight
See All by threetreeslight
実録 採用一投入魂
threetreeslight
0
31
Bottleneck is You
threetreeslight
0
120
Japan Office Society オフィスはスタートアップの成長を助長するのか?阻害するのか?
threetreeslight
0
130
スタートアップは見極められたくない
threetreeslight
0
55
VPoEの責務とは
threetreeslight
0
87
CiecleCIでもくもく会を支える技術
threetreeslight
0
62
Ego vs higher self
threetreeslight
0
48
Performance Hack 101
threetreeslight
0
110
複数のスタートアップを 通して得た失敗と学び
threetreeslight
0
83
Other Decks in Technology
See All in Technology
CloudTrail を見つめ直してみる
kazzpapa3
1
120
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
110
Scovilleモバイルエンジニア募集中.pdf
julienrudin
0
120
Shipping AI Agents — Lessons from Production
vvatanabe
0
290
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
160
生成AIが変える SaaS の競争原理と弁護士ドットコムのプロダクト戦略
bengo4com
1
2.5k
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
180
音声言語モデル手法に関する発表の紹介
kzinmr
0
140
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
270
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.4k
Agents CLI と Gemini Enterprise Agent Platform で マルチエージェント開発が楽しくなる!
kaz1437
0
170
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
10
2.3k
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
110
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
170
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
210
Building an army of robots
kneath
306
46k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
170
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Abbi's Birthday
coloredviolet
2
7.2k
Tell your own story through comics
letsgokoyo
1
900
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