共有ウェブホスティングで実行する必要があるこのphpスクリプトがあります。 shスクリプトを実行するcronジョブを作成しました。 cronのコマンドは次のとおりです。
/bin/sh /home/user/script.sh
したがって、Bourne Shell(または互換性のあるもの)であると想定しています。スクリプト自体は次のとおりです。
#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results
私の質問は:
phpコマンドにNice優先度を追加できますか?または、cronコマンドでスクリプトに追加する必要がありますか?どちらが機能する可能性が高いですか?
Nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB
低い優先度で実行すると成功しますか?
PS:基本的に、このスクリプトは、ブラウザーで実行する前にサーバーに過負荷をかけ、そのサーバー上のApacheに影響を与え、ホストがファイルをブロックする結果になりました。さまざまなパラメータでテストするために、ブロックを解除するよう繰り返し依頼しました。そして今、Apacheに影響を与えないことを期待して、より低い優先度でcronを介して実行しようとしています。しかし、私はそれが再び問題を引き起こしたくないので、私はニースを使おうとしています
[〜#〜] update [〜#〜]:そこに示されているようにバッチファイルを使用しました。バッチファイル内でphpの前にNiceコマンドを使用しました。唯一の違いは次のとおりです。
Nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB
同じNiceプロパティを持つ追加のphpスクリプトを実行するコマンドを追加しました。それらはすべてうまくいきました。
入力してくれてありがとう @ sm4rk0の答えは私の問題を解決します
どちらの方法でも機能するはずですが、IMOでは、例で行ったように、スクリプトにNice
を挿入する方がクリーンです。 man Nice
で確認したところ、問題の例の構文が間違っていることがわかりました。正しい構文は次のとおりです。
Nice -n 10 command
ニースの範囲は-20(最も好ましいスケジュール)から19(最も好ましくない)
また、terdonが言ったように、10がデフォルト値であるため、「-n10」は省略できます。
注:プロセスの優先度は低くなりますが、NiceではCPU負荷が少なくなることはありません。したがって、心配する理由がApache
を「チョーク」しないことだけである場合は、この方法を使用します。大丈夫ですが、ホストがCPU時間の割り当てを与えている場合、これはあまり役に立ちません。