Php非同期の技法

3,361 views
3,123 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,361
On SlideShare
0
From Embeds
0
Number of Embeds
71
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Php非同期の技法

  1. 1. PHP非同期の技法 Shogo Kawahara <kawahara@bucyou.net> #phpkansai 2014.06.28
  2. 2. ● 東京から仙台まで歩く (いま宇都宮でセーブし ている) ● PHPで (ほかの言語ではできるような) PHPっ ぽくないことをやる ○ PHPとJavaScriptの噺: http://www.slideshare. net/ooharabucyou/phpjava-script ● PHPは保守でしかやってない :) 最近の趣味
  3. 3. 今回のテーマは “非同期” ● PHPで時間のかかるバックグラウンドな処理を 実装したい ○ 管理画面とかで巨大なファイル作ったり ○ 変な計算したり POST /makeCsv 202 Accepted Start to make CSV file BackgroundWeb ServerUser
  4. 4. 今回紹介する方法 ● Background Process ● React ● Hack Lang (おまけ)
  5. 5. Backgrond Process https://github. com/kohkimakimoto/BackgroundProcess ● Demo: https://github.com/kawahara/async-php-demo-1 ● Background でプロセスを起動させる便利なラ イブラリ ● プロセス用PHP作って nohup で起動 ○ プロセス管理用ファイルやらを作って、正常 終了したら勝手に削除してくれる ○ とてもお気軽
  6. 6. React PHP ● http://reactphp.org/ ● まるで node.js のようなページの佇まい ● コールバック天国へようこそ ● サーバアプリを書いちゃえ ● Demo: https://github.com/kawahara/async-php-demo-2
  7. 7. Hack Lang ● http://hacklang.org/ ● もはや PHP じゃない ● async function という素敵な機能あり ● FastCGI mode のとき、今回の事例のような用 途で使うのは辛いか? ● Demo: https://gist.github.com/kawahara/5aa3a45d575a07384af6
  8. 8. まとめ ● PHPでも非同期な実装はできる ● でも、余裕あるならなんかメッセージキューな サーバとか組んだほうがいいっす。 (RabbitMQ とか) ● Hack Lang の async は本来の処理以外 (logging とか profiling) や、複数のResourceに 並行にアクセスする際に利用できそう。そういう Hack Lang 用のフレームワークができる気がす る。

×