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
あなたってどんな方(型)?/ kamakura.go#4
Search
Konboi
May 25, 2018
Technology
1
590
あなたってどんな方(型)?/ kamakura.go#4
kamakura.go#4の発表資料
Konboi
May 25, 2018
Tweet
Share
More Decks by Konboi
See All by Konboi
非同期開発体制を支えるドキュメント文化 / YAPC::Hiroshima 2024
konboi
28
11k
様々な環境へコマンドラインツールを提供する上での苦労とその対策 / YAPC::Kyoto 2023
konboi
0
2.9k
煩雑な運用を Goを使って楽にする / Go Conference 2019 Spring
konboi
4
4.3k
中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017
konboi
8
9.6k
golang tokyo #6 / ゲーム開発には欠かせない?! あれをシュッと見る
konboi
1
7.5k
git-schemlexとddl-makerを使ったDB migrationの紹介 / git-schemalex and ddl-maker migration #golangtokyo
konboi
1
10k
Redisの調査についてとrmlp
konboi
5
4.5k
カヤックの新卒研修 #師弟登壇2015
konboi
0
3.8k
開発環境をどっかんどっかん立てる
konboi
0
610
Other Decks in Technology
See All in Technology
Mastraに入門してみた ~AWS CDKを添えて~
tsukuboshi
0
330
クラウド開発環境Cloud Workstationsの紹介
yunosukey
0
200
生成AIによるCloud Native基盤構築の可能性と実践的ガードレールの敷設について
nwiizo
7
1.2k
白金鉱業Meetup_Vol.18_AIエージェント時代のUI/UX設計
brainpadpr
1
210
Dynamic Reteaming And Self Organization
miholovesq
3
650
AIエージェント開発手法と業務導入のプラクティス
ykosaka
9
2.1k
Perl歴約10年のエンジニアがフルスタックTypeScriptに出会ってみた
papix
1
160
Making a MIDI controller device with PicoRuby/R2P2 (RubyKaigi 2025 LT)
risgk
1
320
Running JavaScript within Ruby
hmsk
3
380
Road to Go Gem #rubykaigi
sue445
0
960
Oracle Cloud Infrastructure:2025年4月度サービス・アップデート
oracle4engineer
PRO
0
130
Microsoft の SSE の現在地
skmkzyk
0
170
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Side Projects
sachag
453
42k
Designing Experiences People Love
moore
142
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Building Adaptive Systems
keathley
41
2.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
790
GraphQLとの向き合い方2022年版
quramy
46
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Transcript
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ 2018/05/25 kamakura.go#4
ࣗݾհ • ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • SGࣄۀ෦ •
αʔόʔαΠυΤϯδχΞ/ ΤϯδχΞϦϯάϚωʔδϟʔ • Go/Perl/AWS
ࠓͷ͓
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
δϣϒΩϡʔ • a.k.a ϝοηʔδΩϡʔ/λεΫΩϡʔ • Perl • Gearman • Q4M
• Rails • ActiveJob • Sidekiq • Shoryuken
δϣϒΩϡʔ • ඇಉظʹॲཧΛߦ͍͍ͨ • ϩδοΫͷॲཧΛ͚͍ͨ • ex) • ϢʔβʔొޙϝʔϧΛૹΔ •
ΫΤετΫϦΞ࣌ͷΫΤετΫϦΞνϟϨϯδͷୡ • ϑϨϯυΛΫΤετʹ࿈Εͯߦͬͨ࣌ʹ ϑϨϯυϙΠϯτ༩
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
None
Amazon SQS • Simple Queue Service ͷུ • ϚωʔδυͷΩϡʔΠϯάαʔϏε •
ඪ४ΩϡʔͱFIFO(First In First Out)Ωϡʔͷ2ͭ • ͨͩ͠ɺFIFO౦ژϦʔδϣϯະରԠ
Amazon SQS • String,Number,BinaryͷσʔλΛ ϝοηʔδຊจʹ֨ೲՄೳ • AttributeͱݺΕΔϑΟʔϧυʹ ຊจͱผʹใ͕֨ೲՄೳ • Ұఆ࣌ؒܦͭͱ
࠶ϝοηʔδ͕औಘͰ͖Δ • ϝοηʔδࣗͰআ͢Δඞཁ͕༗Δ
ͦͦͳΜͰ Amazon SQSΛ͏ͷ͔ʁ
Amazon SQSΛ͏ཧ༝ • ϑϧϚωʔδυ • ཧίετμϯ • ଞͷϓϩδΣΫτͰ࠾༻ࡁΈ • ͨͩ͠
• SQSಠࣗͷΫηΛߟྀ͢Δඞཁ͕͋Δ • ࠓճ͜ͷ෦͞ͳ͍ͷͰڵຯ͋Δਓ ࠙ձͰ
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
GoͷϓϩδΣΫτ • ొਓ • Job • ඇಉظʹ࣮ߦ͍ͨ͠ॲཧ • Queue •
JobΛग़͠ೖΕ͢ΔͷΠϝʔδ • JobQueue • JobΛQueue͔ΒऔΓग़࣮ͯ͠ߦ͢Δ
GoͷϓϩδΣΫτ • ίʔυͩͱ͜Μͳײ͡
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC 3VO
ͨͱ͑Queue͕ channelͷ߹
Queue͕channelͷ߹ • channelΛ༻͍ͨQueueͷίʔυ
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF DIBOOFM +PC 3VO
ͨͱ͑Queue͕ Amazon SQSͷ߹
ͨͱ͑Queue͕Amazon SQSͷ߹ • amazon sqsΛ༻͍ͨQueueͷίʔυ
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 2VFVF +PC
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZʹ +PCͷใΛ+40/ʹͯ͠ૹΔ 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZͷ +40/Λ+PCʹ6ONBSTIBM 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 3VO 2VFVF
͋Ε...
ͪΐͬͱͯΑ…✋
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠
લஔ͖͕͍ͯ͘͢·ͤΜ
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠ Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ
Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ • Job͕1छྨͩͬͨΒͳ͍ • ͔࣮͠͠ࡍ • ΫΤετΫϦΞϛογϣϯͷδϣϒ • QuestClearJob
• ϑϨϯυʹϙΠϯτΛ༩͢Δδϣϒ • SendFriendPointJob • Unmarshalઌͷܕ͕ҟͳΔ
SQS͔ΒऔΓग़ͨ͠ϝοηʔδΛ దʹUnmarshal͢Δඞཁ͕͋Δ
None
औΓग़ͨ͠λΠϛϯάͰ ͋ͳͨͲΜͳํ(ܕ)͔͍ͬͯͯ structΛ࡞Δඞཁ͕͋Δ
Ͳ͏ͬͯղܾ͔ͨ͠
reflect
reflect • reflect.New(reflect.Type) • reflect.Value͕ฦͬͯ͘Δ • reflect.Value.Interface() • Interface{}͕ฦͬͯ͘Δ •
͜ΕͰstructΛੜ(?)͢Δࣄ͕Ͱ͖Δ
reflect
reflect
͜ΕΛઌఔͷSQS Queueʹ ө͢Δͱ
SQS Queueʹө͢Δ
SQS Queueʹө͢Δ
SQS Queueʹө͢Δ
ิ • ͳΜͰJobຖʹQueueΛ༻ҙ͠ͳ͔ͬͨͷʁ • طʹJobͷ͕10ݸ͋Γ ࠓޙ૿͑Δ༧ఆ • ৽نͰJobΛ࡞Δʹ։ൃڥ/ຊ൪ͱ QueueΛ࡞ΔͷΦϖϨʔγϣϯ͕ࡶ
ิ
ิ • Queueଆ͕ԿͷJob͕ग़ೖΓ͢Δ ͔Δඞཁ͕ͳ͘ɺ ґଘ͠ͳ͍ํ͕Α͍ͱ͍͏݁ʹ
·ͱΊ • GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠ • reflect.New/reflect.Value/r.V.Interface() ͔ΒಈతʹܕΛੜͯ͠ղܾ
Ҏ্ ͋ͳͨͬͯͲΜͳํ?(ܕ)
Q&A
ࢀߟURL • https://aws.amazon.com/jp/sqs/ • http://awsdocs.s3.amazonaws.com/SQS/ latest/sqs-gsg.pdf • https://golang.org/pkg/reflect/ • ΈΜͳͷGoݴޠ