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
resque-scheduler
Search
Fumiaki MATSUSHIMA
November 30, 2016
Programming
0
150
resque-scheduler
Shinjuku.rb #43 発表資料
https://shinjukurb.connpass.com/event/44524/
Fumiaki MATSUSHIMA
November 30, 2016
Tweet
Share
More Decks by Fumiaki MATSUSHIMA
See All by Fumiaki MATSUSHIMA
Learning from performance improvements on GraphQL Ruby
mtsmfm
1
890
Ruby で作る Ruby (物理)
mtsmfm
0
160
GraphQL Ruby benchmark
mtsmfm
1
660
タイムアウトにご用心 / Timeout might break application state
mtsmfm
6
2.3k
Build REST API with GraphQL Ruby
mtsmfm
0
250
GraphQL Ruby をちょっとだけ速くした / Make graphql-ruby faster a bit
mtsmfm
1
630
Gaming PC on GCP
mtsmfm
0
620
How to introduce GraphQL to an existing React-Redux application
mtsmfm
1
190
Canary release in StudySapuri
mtsmfm
0
2.8k
Other Decks in Programming
See All in Programming
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
英語
s_shimotori
1
220
Terraformテスト入門
msato
0
520
DynamoDB コスト最適化っぽいことの基本 with Terraform
kuro_kurorrr
2
250
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
Ruby メモリ管理 プログラミング
megmogmog1965
0
130
継続的な活動で築く地方エンジニアの道
myamashii
2
350
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
初心者がおさえておきたいAWS CDKのベストプラクティス 2024
konokenj
15
7.3k
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
Trial
cairolibrary720
1
130
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
140
Featured
See All Featured
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
A designer walks into a library…
pauljervisheath
201
24k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
Design by the Numbers
sachag
277
18k
Rails Girls Zürich Keynote
gr2m
93
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
What's in a price? How to price your products and services
michaelherold
239
11k
Making the Leap to Tech Lead
cromwellryan
127
8.7k
Faster Mobile Websites
deanohume
303
30k
For a Future-Friendly Web
brad_frost
173
9.2k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
The Language of Interfaces
destraynor
151
23k
Transcript
(株)永和システムマネジメント @mtsmfm 松島 史秋 resque-scheduler
松島 史秋 GitHub, Twitter @mtsmfm
ポケモン S/M まっちまー フレコ 1907-9185-9222
None
resque- scheduler
https://github.com/resque/resque-scheduler
大きく2つの 機能
- Delay - Schedule
- Delay - 10分後に実行 - Schedule - cron
resque 単体だと できない
ActiveJob
http://edgeguides.rubyonrails.org/active_job_basics.html#enqueue-the-job
ActiveJob が やってくれたり してないかな
Emoji provided free by Emoji One
https://github.com/mtsmfm/ resque-scheduler-example
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque- scheduler.rb#L4
挙動が違う
https://github.com/jmettraux/rufus-scheduler/blob/master/lib/rufus- scheduler.rb
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler/tasks.rb#L17-L18
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler/cli.rb#L117
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler.rb#L59-L70
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler/locking.rb#L65-L67
Lock
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler/locking.rb#L3-L50
- master プロセスが落ちたときに複数回 enqueue されないための機構 - Redis の SETNX を使っている
- Delayed job は SETNX で単純な十分 - Scheduled job (cron っぽい方) は頻繁に master が変わると、マシンの時間がずれて いる場合に厳しい - (デフォルトだと) 3 分ごとに lock をとる - 2 回走ってもいいときや時間の同期がきっち りされているなら短くするとよい
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler.rb#L59-L70
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler.rb#L181-L190
Schedule job は?
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler/locking.rb#L3-L50
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler/locking.rb#L28-L30
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler.rb#L49-L53
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler.rb#L89-L104
https://github.com/resque/resque-scheduler/blob/v4.3.0/lib/resque/ scheduler.rb#L124-L163
学び
- 概要のわかる ドキュメント大事 - resque-scheduler は 多重実行されるくらいなら job が失われた方がいいという方 針
- Lock 機構難しい