PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
Q&A
解決済
1回答
1428閲覧
総合スコア229
0グッド
2クリップ
投稿2014/02/23 13:09
0
2
PHP5.3でバッチ実行処理を作っています。
処理の中で、DBからのSELECT/UPDATEを繰り返すループ処理が結構あります。 これが非常に負荷になると思うのですが、どの程度のループ回数で、何秒ほどの遅延を発生させるべきでしょうか? また、停止はsleep()関数を使用するのが一般的でしょうか?
実行サーバーはLinux(CentOS6.4)です。 ご回答お願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答1件
ベストアンサー
仰るとおり、処理の一時停止にはsleep()関数が一般的です。 もし、1秒未満でsleepさせたい場合は usleep()を使ってください。
$i = 0; // 1000回LOOP foreach (range(0, 1000) as $v) { // 100回に1度1秒間遅延する if( $i % 100 === 0) { echo $i . PHP_EOL; sleep(1); } $i++; }
頻度と停止時間の判断は難しいですね。
私は100回に1秒程度入れる事が多いですが、 判断軸としては
LoadAverageならtopコマンド、 iowaitならvmstat、sarコマンド等で確認が出来ます。
投稿2014/03/03 09:36
総合スコア103
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
PHPバッチ実行時の処理停止について
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。