PHP

【exec関数】PHPにて重い処理を別スレッドで実行する方法

exec("nohup php -c '' '起動PHPファイルパス' '引数ARGS' > /dev/null &");

 

上記の様に、例えばメルマガの配信をセットしたりすると、メルマガの全ての送信を待たないとレスポンスは帰って来ませんので次の処理を行う事が出来ません。そこで、上記の様な重い処理を別ファイルにして、exec()にて呼び出します。後半の『 > /dev/null &』で返却値を捨てていますので、レスポンスを待たずに次の処理へ進める事が出来ます。
また、前半の『nohup』では、バックグラウンドにて処理中のタスクがログアウトしてしまったり、
ハングアップしてしまっても、処理を続けるように指定します

(参考:http://web-terminal.blogspot.jp/2013/04/php.html

 

■その他。アップロードの経過を見る

しかし、PHP5.4以降はINI オプション session.upload_progress.enabled
を有効にすることでアップロードの進捗をPHPから追えるようになりました。

(引用:http://senoway.hatenablog.com/entry/2013/06/13/112935

JavaScriptのAjaxをsetInterval()やsetTimeout()と併用すれば、PHPで取得した進捗状況を断続的に取得し続けられます。


Warning: Undefined variable $postID in /home/foodheart/flashbuilder-job.com/public_html/wp-content/themes/stingerplus/single.php on line 87

-PHP