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
tes
Search
Takayuki
March 15, 2018
0
21
tes
Takayuki
March 15, 2018
Tweet
Share
More Decks by Takayuki
See All by Takayuki
地方カンファレンス主催のススメ
bumptakayuki
1
110
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
1
360
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
380
沖縄観光、名物を一挙紹介!
bumptakayuki
2
400
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
1k
flutterでイベントアプリを作ってみた
bumptakayuki
0
91
オフショア開発の辛みと学んだ事
bumptakayuki
0
310
ChatGPTにStripeのサンプルコードを書かせてみた
bumptakayuki
1
130
ChatGPTに記事を書かせてみた
bumptakayuki
1
200
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
78
43k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
322
20k
How STYLIGHT went responsive
nonsquared
92
4.8k
What's in a price? How to price your products and services
michaelherold
237
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Visualization
eitanlees
136
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
Transcript
Laravel JobQue Laravel JobQue
1 JobQueͱ 2 Γ͍ͨ͜ͱɾղઆ Agenda 3 ࣮ԋ
1 JobQueͱ
4 1 JobQueͱ !δϣϒ : ԿΒ͔ͷॲཧ !Ωϡʔ : ઌೖΕઌग़͠ (FIFO)
ͷϦετ ߏΛ࣋ͭɺίϯϐϡʔλͷجຊతͳσʔ λߏͷҰͭ !ϫʔΧʔ : Ωϡʔʹొ͞Εͨδϣϒ Λஞ࣮࣍ߦ͍ͯ͘͠ͷ
5 Ωϡʔͱ !Ωϡʔʢӳ: queueʣɺ͋Δ͍ͪߦ ྻίϯϐϡʔλͷجຊతͳσʔλߏ ͷҰͭɻ !σʔλΛઌೖΕઌग़͠[1]ͷϦετߏ Ͱอ࣋͢ΔͷͰ͋Δɻ !Ωϡʔ͔ΒσʔλΛऔΓग़͢ͱ͖ʹ ɺઌʹೖΕΒΕͨσʔλ͔ΒॱʹऔΓ
ग़͞ΕΔɻΩϡʔʹσʔλΛೖΕΔ͜ͱ ΛΤϯΩϡʔ[2]ɺ !औΓग़͢͜ͱΛσΩϡʔ[3]ͱ͍͏ɻ
6 ͲΜͳ࣌ʹ͏ͷ͔ʁ ͨͱ͑ɺ Web ΞϓϦέʔγϣϯʹ͓͍ͯɺ Ϣʔβʔ͔ΒͷೖྗΛड͚͚ͨޙʹαʔόʔαΠυͰॏ ͍ॲཧΛ͢Δඞཁ͕͋ͬͯɺͦͷॲཧΛδϣϒͱͯ͠ Γग़ͯ͠Ωϡʔʹొ͢ΔΑ͏ʹ͢ΕɺΞϓϦέʔγϣ ϯͦͷॏ͍ॲཧΛඇಉظͰ࣮ߦͰ͖ɺॲཧ͕ྃ͢Δલ ʹϢʔβʔʹϨεϙϯεΛฦ͢͜ͱ͕Ͱ͖·͢ɻ
7 ͲΜͳ࣌ʹ͏ͷ͔ʁ
2 Γ͍ͨ͜ͱɾղઆ
9 Γ͍ͨ͜ͱ ɾؔऀʹେྔͷϝʔϧΛૹ৴͢ΔࡍʹϝϞ ϦϦʔΫͤ͞ͳ͍ɻ ɾϨεϙϯεͪঢ়ଶʹͤͣʹઌʹϨεϙϯε (εςʔλείʔυͳͲ)͚ͩฦ͢ɻ
1 0 ࠓճΔ͜ͱ !ΠϕϯτˍϦεφʔͰϝʔϧૹ৴Λ࣮ !ϦεφʔΛΩϡʔԽͯ͠ඇಉظͰϝʔϧΛૹ৴
11 ѱ͍ྫ ϝʔϧૹ৴ͯ͠ը໘͕ݻ·Δ ʘ(^o^)ʗΦϫλ
1 2 ΠϕϯτϦεφʔͱ !Ϣʔβʔొ࣌ୀձ࣌ͳͲಛఆͷΠϕϯτͷ࣌ʹൃՐ͍ͤͨ͞ ϝιουΛཧ͍ͨ࣌͠ΠϕϯτϦεφʔΛ͏ͱศརͰ͢ɻ !͍ΘΏΔΦϒβʔόʔύλʔϯͱݺΕΔίʔυͷ࣮ํ๏Ͱɺ JavaScriptͰDOMૢ࡞͢Δͱ͖ʹ͓ͳ͡Έͷํ๏Ͱ͢ɻ Ϙλϯ͕ΫϦοΫ͞ΕͨΒ"click"ͱ͍͏Πϕϯτ͕ൃՐͯ͠ɺͦͷ Πϕϯτ͕ൃՐͨ͠Βಛఆͷॲཧ͕ΔΑ͏ʹ͢Δͱ͍͏࣮ํ ๏Ͱ͢ɻ
1 3 ֤σΟϨΫτϦͷઆ໌ !app\Events Πϕϯτ໊ʹΫϥε໊ͱͨ͠ΫϥεΛஔ͘ʢݫີͳ໋໊نଇͳ͍Ͱ͢ʣ !app\Listeners Πϕϯτ͝ͱͷॲཧʢϦεφʔʣͱsubscribeϝιουͷ࣮ʢޙड़ʣ͠ ͨΫϥεΛஔ͘ !app\Providers ΠϕϯτߪಡͰ༻͢ΔϦεφʔΛొ͢ΔΫϥεΛஔ͘
!app\Controllers EventΛݺͼग़͢ίϯτϩʔϥʔ͓ΑͼϝιουΛ༻ҙ͓ͯ͘͠
1 4 ࣮खॱ EventServiceProviderʹΠϕϯτΛ هࡌ ϓϩδΣΫτ࡞͔࣌Β༻ҙ͞Ε͍ͯΔ EventServiceProvider.phpͷ$listen෦ʹ ࿈ྻͷܗࣜͰɺ Πϕϯτ(key) =>
Ϧεφʔ(value)ͷΑ͏ ʹهࡌͯ͠ΠϕϯτͱϦεφʔΛొ͢ Δɻ
1 5 ࣮खॱ
1 6 ࣮खॱ ΠϕϯτϑΝΠϧΛઃఆ !શһʹΒͤΔ ( App\Events\PublicAlertCreated )
1 7 ࣮खॱ ϦεφʔϑΝΠϧΛઃఆ !શһʹΒͤΔ ( App/Listeners/SendPublicAlert.php )
1 8 ࣮खॱ ίϯτϩʔϥͰΠϕϯτൃՐ !શһʹΒͤΔ ( App\Http\Controllers/HomeController.php )
1 9 ͜ͷॲཧͰͷ ొϢʔβશһͷϝʔϧͷૹ৴ॲཧˍ5000ճͷΫΤϦऔಘ͕ऴΘ͔ͬͯΒϨεϙϯε ͕ฦͬͯ͘ΔͷͰɺʮϝʔϧྃ ϝʔϧΛૹΓ·ͨ͠ʂʯͷද͕ࣔදࣔ͞ΕΔͷϘλ ϯΛԡ͔ͯ͠Β͠Β͘ܦ͔ͬͯΒʹͳΔɻ ຊ൪ͷΞϓϦέʔγϣϯͰೋॏߘΛࢭ͢ΔॲཧͳͲ͕ೖ͍ͬͯͯɺϨεϙϯε͕ ฦͬͯ͘Δ·ͰϢʔβʔ͕ϘλϯΛԡͤͳ͍͜ͱ͋ΔͩΖ͏ɻ ૹ৴ྃͷ͓Βͤද͕ࣔදࣔ͞ΕΔ͕࣌ؒɺૹ৴Ϣʔβʔʹґଘ͢Δͱ͍͏ͷϢʔ
βʔʹͱ͔ͬͯΓͮΒ͍ͨΊɺૹ৴Ͱ͖͍ͯͳ͍ͱצҧ͍ͯ͠࿈ͯ͠͠·͏ਓ͍ Δ͔͠Εͳ͍ɻ
2 0 ͦ͜ͰΩϡʔͷొ ͜ͷʮ͋ͱɺͦͬͪͰΑΖ͘͠ʯํࣜͷ͜ͱΛɺΩϡʔͱݺͿɻͪ ߦྻͱ͍͏ҙຯͩɻ ϢʔβʔࣗͷΘΓʹɺখਓͨͪΛྻʹฒͤͯখแΛ32ݸൃૹ͞ ͤΒΕΔɻ͜ͷখਓͷ͜ͱΛϫʔΫδϣϒͱݺͿɻ ΩϡʔΛ͏ʹɺখਓΛฒͤΔͨΊͷςʔϒϧ͕ඞཁͩɻ
2 1 Ωϡʔͷઃఆํ๏
2 2 Ωϡʔͷઃఆํ๏
2 3 Ωϡʔͷઃఆํ๏
2 4 Ωϡʔͷઃఆํ๏
2 5 Ωϡʔͷઃఆํ๏
2 6 ͪߦྻͰ͏·ͬͯ͘͘ΕͯΔ
2 7 ࢀߟจݙ !Laravel5.4ͰΠϕϯτˍΩϡʔΛͬͯϝʔϧΛΩϡʔૹ৴͢Δखॱ http://arm4.hatenablog.com/entry/2017/09/11/183610
2 8 githubʹιʔε্͛·ͨ͠ https://github.com/bumptakayuki/Mailable_Test_Laravel