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
rails + serverengineで お手軽daemon
Search
threetreeslight
October 02, 2015
Technology
0
130
rails + serverengineで お手軽daemon
threetreeslight
October 02, 2015
Tweet
Share
More Decks by threetreeslight
See All by threetreeslight
実録 採用一投入魂
threetreeslight
0
18
Bottleneck is You
threetreeslight
0
110
Japan Office Society オフィスはスタートアップの成長を助長するのか?阻害するのか?
threetreeslight
0
110
スタートアップは見極められたくない
threetreeslight
0
43
VPoEの責務とは
threetreeslight
0
75
CiecleCIでもくもく会を支える技術
threetreeslight
0
53
Ego vs higher self
threetreeslight
0
43
Performance Hack 101
threetreeslight
0
91
複数のスタートアップを 通して得た失敗と学び
threetreeslight
0
72
Other Decks in Technology
See All in Technology
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
400
人工衛星のファームウェアをRustで書く理由
koba789
15
7.8k
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
270
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
110
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
400
2025年になってもまだMySQLが好き
yoku0825
8
4.7k
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
240
生成AIでセキュリティ運用を効率化する話
sakaitakeshi
0
670
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
Featured
See All Featured
The Language of Interfaces
destraynor
161
25k
Documentation Writing (for coders)
carmenintech
74
5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Bash Introduction
62gerente
615
210k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Scaling GitHub
holman
463
140k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
RailsConf 2023
tenderlove
30
1.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Side Projects
sachag
455
43k
GitHub's CSS Performance
jonrohan
1032
460k
Transcript
rails + serverengineͰ ͓खܰdaemon Akira Miki Repro Inc. shinjuku.rb #29@metaps
Sep 30, 2015
Akira Miki Repro @treetreeslight
None
ղੳ͔Βղܾ·ͰαΫοͱ
About job
ReproͰ͍ͬͯΔjob܈ serverengine sidekiq AWS lambda ࢹͯ͠ൃՐ੍ޚ͍ͨ͠ ฒྻΛ੍ݶ͍ͨ͠ ฒྻΛ੍ݶ͠ͳ͍ ΨϯΨϯॲཧ͍ͨ͠ 4ͳͲͷ"84πʔϧ܈
ͱγʔϜϨεͳ࿈ܞͯ͠ ΨγΨγॲཧ͍ͨ͠
ͲΜͳ͜ͱʹͬͯΔͷʁ serverengine sidekiq AWS lambda w ಈըͷม w ղੳσʔλΩϟογϡ w
ఆظܾࡁ w QVTI༧ͷࢹ w *O"QQରऀͷߋ৽ FUDʜ w ϝʔϧΛૹΔ w ղੳσʔλΛૹΔ w ৴σʔλͷ࡞ FUDʜ w 1VTIૹΔ FUDʜ
ͲΜͳ͜ͱʹͬͯΔͷʁ serverengine sidekiq AWS lambda w ಈըͷม w ղੳσʔλΩϟογϡ w
ఆظܾࡁ w QVTI༧ͷࢹ w *O"QQରऀͷߋ৽ FUDʜ w ϝʔϧΛૹΔ w ղੳσʔλΛૹΔ w ৴σʔλͷ࡞ FUDʜ w 1VTIૹΔ FUDʜ
બఆܦҢΛϓϩτλΠϓ࣌ͷ ʮஏ͔ͣ͠ʙʙʙ͍ʯ ࣦഊஊ౿·͑ͯ
ϓϩτλΠϓͩ͠ͱΓ͋͑ͣ cron Rake script SQS SDK ̍୯ҐͩΑ͒
͋ΕʁϝϞϦᷓΕͯͶʁ
ͦΓΌrailsrequireͯ͠rakeୟͱ ϝϞϦΊͬͪΌ৯͏ΑͶ!! ϓϩτλΠϓͱ͍͑ࡶ͗ͨ͢!!!
ϓϩτλΠϓͱ͍͑ ͪΐͬͱؾΛ͓͔ͬͯ͘ cron SQS SDK Server Ӆ͠URL
CPUΔ͖ͩͯ͠Δɾɾɾʁ
ffmpegͬͯݶք·Ͱ CPU͏͔ΒͶʂ ϓϩτλΠϓͱ͍͑ࡶ͗ͨ͢!!!
ͪΌΜͱ͢Δظ • railsͷmodelࢿ࢈Λ͍·Θ͠ • ffmpeg͕CPUΛ৯͍ਚ͘͢ͷͰฒྻ੍ݶͭͭ͠ • Rails requireͷϝϞϦͷΦʔόʔϔου࠷খݶʹ • ࣗલͰdaemonϥούʔॻ͍ͯྑ͍͚Ͳɺγάφ
ϧ੍ޚܥͱ͔ॻ͘ͷΊΜͲ͍ <- Ұ൪ίϨ
serverengine
serverengine ͍͢!!! SQS SDK serverengine long poling wΔ͜ͱʹ߹ΘͤͯXPSLFSௐͭͭ͠ wTVQFSWJTFSࢠͱ͍͏ૉఢߏ wϩά·ΘΓγάφϧʹΑΔϓϩηε੍ޚ·ͰόονϦ
ؾΛ͚ͭͨ͜ͱ
Exception def cycle invoke end def invoke( *arguments )
execute( *arguments ) rescue => error report_exception(error) end def execute( *arguments ) raise NotImplementedError end def report_exception(error) # logging, rollbar, newrelic ... end • handle͠ͳ͕Βࢭ·Βͣલਐ
Avoid memory leak • ʢrubyͷઃఆͰղܾͰ͖Δͱࢥ͏͚Ͳʣfragmentation͕ ཷ·ΔͷͰఆظతʹڧ੍GC class worker … def
run begin GC.stop cycle ensure GC.start end rescue Exception => error report_exception error end … end
Zombi process • long polingதʹdeployΛ࿈ଓ͢Δͱɺzombi͕Ͱ͖Δ serverengine serverengine.pid Kill Kill ̍ճ
2ճ start start pollingத serverengine.pid Override
Memory Usage • serverengineprocess modelͳͷͰɺrailsશ෦͚ͬͯ ΔͱϓϩηεϝϞϦΛ͍ͬͺ͍৯Δɻ worker worker server supervisor
͜Εࢹܥ͡Όͳ͍͠ sidekiqͰΑ͔ͬͨΜ͡Όʁ
Ͱͨ͠ serverengine sidekiq AWS lambda w ಈըͷม w ղੳσʔλΩϟογϡ w
ఆظܾࡁ w QVTI༧ͷࢹ w *O"QQͷλʔήοτߋ ৽ w ಈըͷม w ϝʔϧΛૹΔ w ղੳσʔλΛૹΔ w ৴σʔλͷ࡞ FUDʜ w 1VTIૹΔ FUDʜ
·ͱΊ • serverengine͏ͱdaemon͕α ΫοͱͰ͖Δ