Soumettre la recherche
Mettre en ligne
curl_multi_exec()でFire-and-forgetに失敗した話
•
Télécharger en tant que ODP, PDF
•
0 j'aime
•
1,057 vues
Takaaki Hirano
Suivre
How i failed to fire-and-forget with curl_multi_exec()
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 27
Télécharger maintenant
Recommandé
Tokyo Sky Tree
Tokyo Sky Tree
Takahiro Sugiura
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
Takaaki Hirano
プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介
Takaaki Hirano
金曜だけどデザインパターンでも勉強しよう
金曜だけどデザインパターンでも勉強しよう
Takaaki Hirano
PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠
Takaaki Hirano
非同期データ更新のためにメッセージキューを導入した(い)話
非同期データ更新のためにメッセージキューを導入した(い)話
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.4 Builder
月曜だからデザインパターンでも勉強しよう vol.4 Builder
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
Takaaki Hirano
Recommandé
Tokyo Sky Tree
Tokyo Sky Tree
Takahiro Sugiura
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
Takaaki Hirano
プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介
Takaaki Hirano
金曜だけどデザインパターンでも勉強しよう
金曜だけどデザインパターンでも勉強しよう
Takaaki Hirano
PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠
Takaaki Hirano
非同期データ更新のためにメッセージキューを導入した(い)話
非同期データ更新のためにメッセージキューを導入した(い)話
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.4 Builder
月曜だからデザインパターンでも勉強しよう vol.4 Builder
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
Takaaki Hirano
Mysql(クライアント)の出力が変わるオプション達
Mysql(クライアント)の出力が変わるオプション達
Takaaki Hirano
PHPUnit 4.0で追加されたwillReturn*()の紹介
PHPUnit 4.0で追加されたwillReturn*()の紹介
Takaaki Hirano
書こう!正規表現 vol.3 ()
書こう!正規表現 vol.3 ()
Takaaki Hirano
sedで複数行処理 使ってみようNを
sedで複数行処理 使ってみようNを
Takaaki Hirano
ctagsでvimにひきこもる
ctagsでvimにひきこもる
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(例外)
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(基本)
書こう!正規表現 vol.2 文字クラス(基本)
Takaaki Hirano
書こう!ユニットテスト vol.2 どうやって?
書こう!ユニットテスト vol.2 どうやって?
Takaaki Hirano
書こう!正規表現 vol.1 正規表現 is 何
書こう!正規表現 vol.1 正規表現 is 何
Takaaki Hirano
書こう!ユニットテスト vol.1 ナンデ?
書こう!ユニットテスト vol.1 ナンデ?
Takaaki Hirano
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Takaaki Hirano
Cocproxy
Cocproxy
Takaaki Hirano
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Contenu connexe
Plus de Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
Takaaki Hirano
Mysql(クライアント)の出力が変わるオプション達
Mysql(クライアント)の出力が変わるオプション達
Takaaki Hirano
PHPUnit 4.0で追加されたwillReturn*()の紹介
PHPUnit 4.0で追加されたwillReturn*()の紹介
Takaaki Hirano
書こう!正規表現 vol.3 ()
書こう!正規表現 vol.3 ()
Takaaki Hirano
sedで複数行処理 使ってみようNを
sedで複数行処理 使ってみようNを
Takaaki Hirano
ctagsでvimにひきこもる
ctagsでvimにひきこもる
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(例外)
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(基本)
書こう!正規表現 vol.2 文字クラス(基本)
Takaaki Hirano
書こう!ユニットテスト vol.2 どうやって?
書こう!ユニットテスト vol.2 どうやって?
Takaaki Hirano
書こう!正規表現 vol.1 正規表現 is 何
書こう!正規表現 vol.1 正規表現 is 何
Takaaki Hirano
書こう!ユニットテスト vol.1 ナンデ?
書こう!ユニットテスト vol.1 ナンデ?
Takaaki Hirano
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Takaaki Hirano
Cocproxy
Cocproxy
Takaaki Hirano
Plus de Takaaki Hirano
(14)
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
Mysql(クライアント)の出力が変わるオプション達
Mysql(クライアント)の出力が変わるオプション達
PHPUnit 4.0で追加されたwillReturn*()の紹介
PHPUnit 4.0で追加されたwillReturn*()の紹介
書こう!正規表現 vol.3 ()
書こう!正規表現 vol.3 ()
sedで複数行処理 使ってみようNを
sedで複数行処理 使ってみようNを
ctagsでvimにひきこもる
ctagsでvimにひきこもる
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(基本)
書こう!正規表現 vol.2 文字クラス(基本)
書こう!ユニットテスト vol.2 どうやって?
書こう!ユニットテスト vol.2 どうやって?
書こう!正規表現 vol.1 正規表現 is 何
書こう!正規表現 vol.1 正規表現 is 何
書こう!ユニットテスト vol.1 ナンデ?
書こう!ユニットテスト vol.1 ナンデ?
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Cocproxy
Cocproxy
Dernier
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Dernier
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
curl_multi_exec()でFire-and-forgetに失敗した話
1.
curl_multi_exec()で Fire-and-forgetに失敗した話
2.
そもそも今回やりたかったこと
3.
Fire-and-forget 何かをコール(Fire)して その結果を待たない(Forget)
4.
Fire-and-forget 何かをコール(Fire)して その結果を待たない(Forget) ちなみに元々はミサイルの誘導方式を表す用語で、 ミサイル自体に誘導能力が備わっていて、 撃った後にミサイル外部から照準・誘導の必要がない もののことを指すらしいよ!
5.
Fire-and-forget 何かをコール(Fire)して その結果を待たない(Forget) ちなみに元々はミサイルの誘導方式を表す用語で、 ミサイル自体に誘導能力が備わっていて、 撃った後にミサイル外部から照準・誘導の必要がない もののことを指すらしいよ! そうなんだ!すごいね!
6.
具体的にはPOSTして その後忘れ去りたい
7.
みんな大好きcurl_exec()
8.
処理は普通に同期 $ch = curl_init(); curl_exec($ch);
9.
処理は普通に同期 $ch = curl_init(); curl_exec($ch); //
レスポンスが帰ってくるまで処理はブロックされる $ch2 = curl_init(); curl_exec($ch2);
10.
そんなの付き合ってられるか! 俺は先に帰らせてもらう!
11.
そんな貴方に curl_multi_exec()
12.
非同期処理あります $ch1 = curl_init(); $ch2
= curl_init();
13.
非同期処理あります $ch1 = curl_init(); $ch2
= curl_init(); $mh = curl_multi_init();
14.
非同期処理あります $ch1 = curl_init(); $ch2
= curl_init(); $mh = curl_multi_init(); curl_multi_add_handle($mh, $ch1); curl_multi_add_handle($mh, $ch2);
15.
なんか行けそうな感じ
16.
結果はどうやって受け取るの? イベントリスナとか?
17.
…そんなもの ウチにはないよ $active =
null; do { $mrc = curl_multi_exec(mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } }
18.
!?
19.
ステートが変わるまで 無限ループ
20.
= 当然ループで 処理はブロックされる
21.
じゃあ受け取りも放棄しよう!
22.
引かぬ媚びぬ顧みぬ $ch1 = curl_init(); $ch2
= curl_init(); $mh = curl_multi_init(); curl_multi_add_handle($mh, $ch1); curl_multi_add_handle($mh, $ch2); $mrc = curl_multi_exec(mh, $active);
23.
残念ながら
24.
リクエスト前にスクリプトが 終わると
25.
リクエストは実行されない
26.
というわけで
27.
Fire-and-forget 失敗
Télécharger maintenant