Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
background jobで 気をつけないといかんところ
Search
threetreeslight
June 22, 2016
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
background jobで 気をつけないといかんところ
@threetreeslight
Repro Inc.
shinjukurb #37
May 25, 2016
threetreeslight
June 22, 2016
More Decks by threetreeslight
See All by threetreeslight
実録 採用一投入魂
threetreeslight
0
48
Bottleneck is You
threetreeslight
0
140
Japan Office Society オフィスはスタートアップの成長を助長するのか?阻害するのか?
threetreeslight
0
140
スタートアップは見極められたくない
threetreeslight
0
65
VPoEの責務とは
threetreeslight
0
100
CiecleCIでもくもく会を支える技術
threetreeslight
0
70
Ego vs higher self
threetreeslight
0
53
Performance Hack 101
threetreeslight
0
120
複数のスタートアップを 通して得た失敗と学び
threetreeslight
0
94
Other Decks in Technology
See All in Technology
Tips for Building Useful Agent Skills
rstankov
0
110
2026/09/10 Spring Bootから Jakarta EE/MicroProfileへの移行
megascus
0
350
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
210
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
660
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
140
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
1k
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
480
GoCon2026 - Open Source, Open World
sanposhiho
4
3.5k
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
170
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
5
2.1k
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
360
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
310
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Claude Code のすすめ
schroneko
67
230k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
510
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Exploring anti-patterns in Rails
aemeredith
3
500
How STYLIGHT went responsive
nonsquared
100
6.3k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
310
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
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