メモ > サーバ > 各論: プログラミング > PHPで並列処理を行う
PHPで並列処理を行う
以下のプログラムを用意して main.php を実行すると、1.txt 〜 3.txt に同じ時刻が記録される
つまり前のプログラムの終了を待たずに次のプログラムが実行されている
「CPUやメモリを消費してもいいから、とにかく処理速度優先にしたい」という場合に使える
main.php
<?php
echo '[start:' . date('H:i:s') . ']';
//exec('nohup php child.php 1 > /dev/null &');
exec('nohup /usr/bin/php child.php 1 > /dev/null &');
exec('nohup /usr/bin/php child.php 2 > /dev/null &');
exec('nohup /usr/bin/php child.php 3 > /dev/null &');
echo '[end:' . date('H:i:s') . ']';
child.php
<?php
sleep(2);
file_put_contents($argv[1] . '.txt', date('H:i:s'));
[PHP]execでバックグラウンド実行するときの落とし穴に落ちた。 nohup!nohup! - DQNEO起業日記
http://dqn.sakusakutto.jp/2012/08/php_exec_nohup_background.html
PHPで並列処理を作ってみた - Qiita
https://qiita.com/Mizumon/items/1e89b024617afb940881
PHPである処理を行うと、約1時間かかるとします。(この時間は短… - 人力検索はてな
http://q.hatena.ne.jp/1227966968
Advertisement