Memo

メモ > サーバ > 各論: プログラミング > 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