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
Design & Implement Batch Stream Processing Appl...
Search
bash0C7
March 01, 2014
Technology
3.8k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Design & Implement Batch Stream Processing Application for Ruby
沖縄Ruby会議01発表「Rubyによるバッチ業務のストリーム処理化の設計と実装」
http://regional.rubykaigi.org/okrk01/
bash0C7
March 01, 2014
More Decks by bash0C7
See All by bash0C7
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
5
3.2k
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
250
In Hakodate Hokkaido, 3.3-Foot Crafted Ruby Instrument plays ME!! #rubyilluminations #rubykaigi
bash0c7
0
110
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.3k
Infroduction of Ruby WASM Sound Visualizer Presentation
bash0c7
0
53
Introduction to ESP32 PicoRuby development
bash0c7
0
200
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
1.3k
2011年 「ぼっちが懇親会でするべき97のこと」 #97bocchi から積み重ねた【令和7年最新】技術コミュニティ交流戦略2025
bash0c7
1
1.2k
「笑顔」を伝える リモートMTG時代のコミュニケーション戦術
bash0c7
0
150
Other Decks in Technology
See All in Technology
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
410
システム思考で問題に対処する
yussak
0
330
JavaScript 研修 (2026)
recruitengineers
PRO
2
610
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.2k
エンドユーザー視点で見る SansanのMeraki活用と内製自動化
sansantech
PRO
0
110
Goでデータパイプラインを作ろう
sansantech
PRO
1
500
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
220
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
SmartHR Engineering Team Deck
smarthr
1
2.5k
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
310
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
130
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Bash Introduction
62gerente
615
220k
Ruling the World: When Life Gets Gamed
codingconduct
0
300
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
The Language of Interfaces
destraynor
162
27k
Unsuck your backbone
ammeep
672
58k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
Documentation Writing (for coders)
carmenintech
77
5.5k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
250
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
Transcript
RRuubbyyによる バッチ業務の ストリーム処理化の 設計と実装
みなさん
業 務
l ぎょう‐む 〔ゲフ‐〕 【業務】 1 職業や事業などに関して、継続して行う仕事。 2 法律で、社会生活において反復・継続して行う活動の こと。職業上の活動に限らず、娯楽のための個人的な行 為も含まれるが、家事や育児など家庭生活上の活動は含
まれない。→業務上過失 デジタル大辞泉(小学館) hhttttpp::////kkoottoobbaannkk..jjpp//wwoorrdd//業務
オンライン処理 バッチ処理
hhttttppでリクエスト ccrroonnで定時実行
**//55 ** ** ** ** rruubbyy bbaattcchh..rrbb
IUUQTHJUIVCDPNCBTI$UXFFGGZCMPCNBTUFSBQQNPEFMTQPTU@TFSWJDFSC
最高の進捗 最高の成果
業務ルール変更 出力先の追加 時宜を得た通知
いい感じにかい ていこうよ!
でもどうやった らいいだろう?
IUUQXXXqJDLSDPNQIPUPTFOOVJSJOTFUCZODTB IUUQNBHB[JOFSVCZJTUOFU 5PLZP3VCZ,BJHJ3FQPSU@TU “古きよき時代から来ました 真面目なSSEE 真面目にSSEE” こしば としあき @@bbaasshh00CC77 ピクシブ株式会社
エンジニア 広告配信技術係,,ppiixxiivv開発統括係 いくつかのRRuubbyy関連催事運営 レイヤーさん
結論
IUUQqVFOUEPSH
アクセスログ収集 行動ログ収集
l FFlluueennttdd iiss aann ooppeenn ssoouurrccee ddaattaa ccoolllleeccttoorr ddeessiiggnneedd ffoorr
pprroocceessssiinngg hhiigghh--vvoolluummee ddaattaa ssttrreeaammss.. IUUQqVFOUEPSH
具体例
開発状況のリアルタ イム通知システム
-- IIssssuueeの更新 -- mmaasstteerrへのppuusshh -- プルリの立ち上がり を複数の手段で通知
IUUQ JTTVFߋ৽ JEPCBUB௨ .3ߋ৽ JEPCBUB௨ HJUQVTI JEPCBUB௨ HJUQVTI ճूܭ (SPXUI'PSFD
BTUඳը Πϕϯτछ ผఆ "NB[PO424 ΤϯΩϡʔ HJUQVTI J1IPOF௨ Ϛείοτ ௨ "NB[PO424 σΩϡʔ ผͷ 'MVFOUE
JEPCBUBJP グループチャットに流す
デスクトップマスコット通知
TPVSDF UZQFIUUQ QPSU CJOE CPEZ@TJ[F@MJNJUN LFFQBMJWF@UJNFPVUT TPVSDF NBUDIHJUMBC UZQFDPQZ
TUPSF UZQFSFXSJUF BEE@QSFGJYGJMUFSFE SVMF LFZPCKFDU@LJOE QBUUFSO? BQQFOE@UP@UBHUSVF MBTUUSVF SVMF SVMF LFZSFG QBUUFSO?SFGTaIFBETa BQQFOE@UP@UBHUSVF SVMF TUPSF NBUDI NBUDIGJMUFSFEHJUMBC NFSHF@SFRVFTU UZQFDPQZ TUPSF UZQFJEPCBUB XFCIPPL@VSMIUUQTJEPCBUBJPXFC@IPPL@VSM NFTTBHF@UFNQMBUF<':*>5JNFOFX SFDPSE<PCKFDU@BUUSJCVUFT> <DSFBUFE@BU> TUSGUJNF NEQ ͔ΒͷʠSFDPSE<PCKFDU@BUUSJCVUFT><UJUMF>ʠͷ݅ʹ ಈ͖͕͋ΔͶ TUPSF NBUDI NBUDIGJMUFSFEHJUMBC JTTVF UZQFDPQZ TUPSF UZQFJEPCBUB XFCIPPL@VSMIUUQTJEPCBUBJPXFC@IPPL@VSM NFTTBHF@UFNQMBUF<':*>5JNFOFX SFDPSE<PCKFDU@BUUSJCVUFT> <DSFBUFE@BU> TUSGUJNF NEQ ͔ΒͷʠSFDPSE<PCKFDU@BUUSJCVUFT><UJUMF>ʡͷ݅ʹ ಈ͖͕͋ΔͶ TUPSF NBUDI NBUDIGJMUFSFEHJUMBC NBTUFS UZQFDPQZ TUPSF UZQFSFXSJUF BEE@QSFGJYSFXSJUFE TUPSF TUPSF UZQFJEPCBUB XFCIPPL@VSMIUUQTJEPCBUBJPXFC@IPPL@VSM NFTTBHF@UFNQMBUFʲϦϦʔεࠂʳSFDPSE<VTFS@OBNF>͞Μ͕ʠ SFDPSE<DPNNJUT>NBQ\]D]D<NFTTBHF>TMJDF ? ^KPJO ʡΛϦϦʔε͢ΔΑ TUPSF TUPSF UZQFDVSM DVSM@DPNNBOEDVSM VSM@UFNQMBUFIUUQJNLBZBDDPNBQJ@VSM PQUJPOT@UFNQMBUFEBUBVSMFODPEFNFTTBHFʲϦϦʔεࠂʳSFDPSE<VTFS@OBNF>͞Μ TUPSF TUPSF UZQFTRT RVFVF@OBNFNBLBJ[PI TRT@FOEQPJOUTRTBQOPSUIFBTUBNB[POBXTDPN TUPSF NBUDI NBUDIGJMUFSFEHJUMBC UZQFOVMM NBUDI TPVSDF UZQFFYFD DPNNBOEFDIP LFZTVTFS@JE UBHSFXSJUFEGJMUFSFEHJUMBCNBLBJ[PINBTUFS SVO@JOUFSWBMT TPVSDF TPVSDF UZQFFYFD DPNNBOEFDIP LFZTVTFS@JE UBHSFXSJUFEGJMUFSFEHJUMBCMJHIUBETNBTUFS SVO@JOUFSWBMT TPVSDF TPVSDF UZQFFYFD DPNNBOEFDIP LFZTVTFS@JE UBHSFXSJUFEGJMUFSFEHJUMBCMJHIUBETBOBMZTZTNBTUFS SVO@JOUFSWBMT TPVSDF TPVSDF UZQFFYFD DPNNBOEFDIP LFZTVTFS@JE UBHSFXSJUFEGJMUFSFEHJUMBCQJYJWNBTUFS SVO@JOUFSWBMT TPVSDF TPVSDF UZQFFYFD DPNNBOEFDIP LFZTVTFS@JE UBHSFXSJUFEGJMUFSFEHJUMBCEJDQJYJWOFUNBTUFS SVO@JOUFSWBMT TPVSDF NBUDISFXSJUFEGJMUFSFEHJUMBC NBTUFS UZQFDPQZ TUPSF UZQFOVNFSJD@NPOJUPS VOJUNJOVUF PVUQVU@QFS@UBHZFT UBH@QSFGJYDPVOUFE BHHSFHBUFUBH NPOJUPS@LFZVTFS@JE TUPSF NBUDI NBUDIDPVOUFESFXSJUFEGJMUFSFEHJUMBC NBTUFS UZQFDPQZ TUPSF UZQFHSPXUIGPSFDBTU HGBQJ@VSMIUUQBQJ TFSWJDFHJUMBC UBH@GPSTFDUJPO OBNF@LFZTNBY SFNPWF@QSFGJYDPVOUFESFXSJUFEGJMUFSFEHJUMBC TUPSF NBUDI TPVSDF UZQFTRT TRT@FOEQPJOUTRTBQOPSUIFBTUBNB[POBXTDPN SFDFJWF@JOUFSWBM UBHNBLBJ[PITRT TPVSDF NBUDICBTI$@NBLBJ[PI UZQFDPQZ TUPSF UZQFTTUQ TTUQ@TFSWFS TTUQ@QPSU SFRVFTU@NFUIPE/05*': SFRVFTU@WFSTJPO4451 TFOEFSΫϥυి TDSJQU@UFNQMBUFa͋͋οɺ৽͍͠ϦϦʔεͬͯి͕ඈΜͰ͖ͨχϟϯaF TUPSF TUPSF UZQFTUEPVU TUPSF NBUDI hhttttppss::////ggiisstt..ggiitthhuubb..ccoomm//bbaasshh00CC77//6655ff88118899ff77eeee7700aaff99996611ff
ストリーム情報の 自動監視システム
-- 歌手自身が発信した画像 -- イラストレーション投稿 -- セルフポートレート投稿 の収集と自動通知
IUUQTUXJUUFSDPNZVGV@
5XJUUFS 4FBSDI 8FC͔Βը૾ औಘ ը૾ແ͠π Πʔτআڈ JEPCBUB௨ ϩʔΧϧϑ ΝΠϧอଘ UVNCMSߘ
None
TPVSDF UZQFUXJUUFSTFBSDI DPOTVNFS@LFZ999999999999999 DPOTVNFS@TFDSFU9999999999999999999 PBVUI@UPLFO99999999999999999999 PBVUI@UPLFO@TFDSFU9999999999999 VTFS@JEZVGV@ DPVOU SVO@JOUFSWBM SFTVMU@UZQFSFDFOU
NFEJBZFT MBUFTU@JE@GJMF UXFFGGZ@ZVGV@@TJODF@JE@GJMFQPT UBHUXFFGGZZVGV TPVSDF NBUDIUXFFGGZ UZQFDPQZ TUPSF UZQFOVMM TUPSF TUPSF UZQFSFXSJUF BEE@QSFGJYGJMUFSFE SVMF LFZNFEJB@VSM QBUUFSO? JHOPSFUSVF SVMF TUPSF NBUDI NBUDIGJMUFSFEUXFFGGZ UZQFSFXSJUFJNBHF SFNPWF@UBH@QSFGJYGJMUFSFE BEE@UBH@QSFGJYSFXSJUFE JNBHF@TPVSDF@LFZNFEJB@VSM JNBHF@LFZSBX@NFEJB CBTFFODPEFGBMTF NBUDI NBUDISFXSJUFEUXFFGGZZVGV UZQFDPQZ TUPSF UZQFJEPCBUB XFCIPPL@VSMIUUQTJEPCBUBJPVSM NFTTBHF@UFNQMBUF SFDPSE<NFEJB@VSM>SFDPSE<OBNF> ʮSFDPSE<UFYU>ʯ SFDPSE<UXFFU@VSM> TUPSF TUPSF UZQFUVNCMS DPOTVNFS@LFZ99999999999999999 DPOTVNFS@TFDSFU9999999999999999999 PBVUI@UPLFO9999999999999999 PBVUI@UPLFO@TFDSFU9999999999999999 UVNCMS@VSMUVNCMSDPN UBHT@UFNQMBUF SFDPSE<TDSFFO@OBNF> DBQUJPO@UFNQMBUFSFDPSE<UFYU> SFDPSE<UXFFU@VSM> MJOL@LFZUXFFU@VSM JNBHF@LFZSBX@NFEJB CBTFFODPEFEGBMTF QPTU@UZQFQJDUVSF TUPSF TUPSF UZQFJNBHFGJMF TBWF@EJSJNBHF GJMFOBNF@LFZJE FYUFOTJPOKQH JNBHF@LFZSBX@NFEJB CBTFFODPEFEGBMTF TUPSF NBUDI hhttttppss::////ggiisstt..ggiitthhuubb..ccoomm//bbaasshh00CC77//ff3344ddccaa00660044dddd773366990033dd99
FFlluueennttddでの バッチ業務の 設計と実装
まず基本を 思い出そう
入�力 演算 出力と、 記述言語
これがそのまま
入�力プラグイン フィルタ系のプラグイン 出力プラグイン 設定ファイル
入�力 演算 出力と、 記述言語
ポーリング 待ち受け
hhttttpp ttaaiill ttwwiitttteerrsseeaarrcchh などなど
TPVSDF UZQFUXJUUFSTFBSDI DPOTVNFS@LFZ99999999 DPOTVNFS@TFDSFU99999999 PBVUI@UPLFO99999999 PBVUI@UPLFO@TFDSFU99999999 VTFS@JEZVGV@ DPVOU SVO@JOUFSWBM SFTVMU@UZQFSFDFOU
NFEJBZFT MBUFTU@JE@pMFQBUIUPQPT@pMF UBHUXFFGGZZVGV@ TPVSDF
入�力 演算 出力と、 記述言語
データの整形 不要データの排除 などなど
NBUDIUXFFGGZ UZQFSFXSJUF BEE@QSFpYpMUFSFE SVMF LFZNFEJB@VSM QBUUFSO? JHOPSFUSVF SVMF NBUDI
NBUDIpMUFSFEUXFFGGZ UZQFSFXSJUFJNBHF SFNPWF@QSFpYpMUFSFE BEE@QSFpYSFXSJUFE JNBHF@TPVSDF@LFZNFEJB@VSM JNBHF@LFZSBX@NFEJB CBTFFODPEFGBMTF NBUDI
入�力 演算 出力と、 記述言語
ttuummbbllrr iiddoobbaattaa ffiillee ss33 その他たくさん!!
NBUDISFXSJUFEUXFFGGZ UZQFDPQZ TUPSF UZQFJEPCBUB XFCIPPL@VSMIUUQJEPCBUBXFCIPPL NFTTBHF@UFNQMBUFʮSFDPSE<GPP>ʯ TUPSF TUPSF UZQFUVNCMS
DPOTVNFS@LFZ999999 DPOTVNFS@TFDSFU999999 PBVUI@UPLFO999999 PBVUI@UPLFO@TFDSFU99999999 UBHT@UFNQMBUFSFDPSE<TDSFFO@OBNF> DBQUJPO@UFNQMBUFSFDPSE<CBS> MJOL@LFZUXFFU@VSM JNBHF@LFZSBX@NFEJB CBTFFODPEFEGBMTF QPTU@UZQFQJDUVSF TUPSF NBUDI
プラグインの 組み合わせ
単機能なしくみの 組み合わせ
TPVSDF UZQFUXJUUFSTFBSDI DPOTVNFS@LFZ999999999999999 DPOTVNFS@TFDSFU9999999999999999999 PBVUI@UPLFO99999999999999999999 PBVUI@UPLFO@TFDSFU9999999999999 VTFS@JEZVGV@ DPVOU SVO@JOUFSWBM SFTVMU@UZQFSFDFOU
NFEJBZFT MBUFTU@JE@GJMF UXFFGGZ@ZVGV@@TJODF@JE@GJMFQPT UBHUXFFGGZZVGV TPVSDF NBUDIUXFFGGZ UZQFDPQZ TUPSF UZQFOVMM TUPSF TUPSF UZQFSFXSJUF BEE@QSFGJYGJMUFSFE SVMF LFZNFEJB@VSM QBUUFSO? JHOPSFUSVF SVMF TUPSF NBUDI NBUDIGJMUFSFEUXFFGGZ UZQFSFXSJUFJNBHF SFNPWF@UBH@QSFGJYGJMUFSFE BEE@UBH@QSFGJYSFXSJUFE JNBHF@TPVSDF@LFZNFEJB@VSM JNBHF@LFZSBX@NFEJB CBTFFODPEFGBMTF NBUDI NBUDISFXSJUFEUXFFGGZZVGV UZQFDPQZ TUPSF UZQFJEPCBUB XFCIPPL@VSMIUUQTJEPCBUBJPVSM NFTTBHF@UFNQMBUF SFDPSE<NFEJB@VSM>SFDPSE<OBNF> ʮSFDPSE<UFYU>ʯ SFDPSE<UXFFU@VSM> TUPSF TUPSF UZQFUVNCMS DPOTVNFS@LFZ99999999999999999 DPOTVNFS@TFDSFU9999999999999999999 PBVUI@UPLFO9999999999999999 PBVUI@UPLFO@TFDSFU9999999999999999 UVNCMS@VSMUVNCMSDPN UBHT@UFNQMBUF SFDPSE<TDSFFO@OBNF> DBQUJPO@UFNQMBUFSFDPSE<UFYU> SFDPSE<UXFFU@VSM> MJOL@LFZUXFFU@VSM JNBHF@LFZSBX@NFEJB CBTFFODPEFEGBMTF QPTU@UZQFQJDUVSF TUPSF TUPSF UZQFJNBHFGJMF TBWF@EJSJNBHF GJMFOBNF@LFZJE FYUFOTJPOKQH JNBHF@LFZSBX@NFEJB CBTFFODPEFEGBMTF TUPSF NBUDI 変更に強い 業務処理を実装
IUUQqVFOUEPSHQMVHJO
欲しいのがない?
IUUQEIBUFOBOFKQUBHPNPSJT
ggeemmをつくろう
スレッド内でフェッチ処理を 適当な間隔で動かすだけ IUUQTHJUIVCDPNCBTI$qVFOUQMVHJOSVCZ@FWBMCMPCNBTUFSMJCqVFOUQMVHJOJO@SVCZ@FWBMSC
お約束的実装と rreeccoorrddハッシュを いじるだけ IUUQTHJUIVCDPNCBTI$qVFOUQMVHJOSFXSJUFJNBHFCMPCNBTUFSMJCqVFOUQMVHJOPVU@SFXSJUFJNBHFSC
IUUQTHJUIVCDPNCBTI$qVFOUQMVHJOJNBHFpMFCMPCNBTUFSMJCqVFOUQMVHJOPVU@JNBHFpMFSC
IUUQEPDTqVFOUEPSHKBBSUJDMFTJO@FYFD
スケーリング対応 フェイルオーバー対応
ファイル経由 ネットワーク経由 複数FFlluueennttddを連動
まとめ
l ぎょう‐む 〔ゲフ‐〕 【業務】 1 職業や事業などに関して、継続して行う仕事。 2 法律で、社会生活において反復・継続して行う活動の こと。職業上の活動に限らず、娯楽のための個人的な行 為も含まれるが、家事や育児など家庭生活上の活動は含
まれない。→業務上過失 デジタル大辞泉(小学館) hhttttpp::////kkoottoobbaannkk..jjpp//wwoorrdd//業務
基本に忠実なしかも スケール可能バッチ 業務フレームワーク
IUUQqVFOUEPSH
FFlluueennttddとRRuubbyyで たのしく正しく 業務を遂行