7

共有 Web ホスティングで実行する必要があるこの 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を介して実行しようとしています。しかし、私はそれが再び問題を引き起こしたくないので、私はNICEを使用しようとしています

ApacheやWebサーバーに影響を与えずにphpスクリプトを実行する同様のソリューションを提供する他の提案があれば、それも素晴らしいです。

4

3 に答える 3

6

シェルスクリプトをスキップして使用する

* * * * * /usr/bin/nice -n 10 /path/php -q /path/script.php

nice および\または php パスが必要な場合と必要でない場合があります

于 2013-01-17T03:17:45.800 に答える
2

回答が得られないと思ったので、この質問を 2 か所で行って申し訳ありません。スーパーユーザーに質問したところ、私のニーズに合った回答がありました。

@Dagon - Dagon からの回答も同様に機能するようです。いずれかのソリューションでこの問題を解決したら、更新を提供します。

スーパーユーザーで尋ねられた同じ質問 - https://superuser.com/questions/537509 ...

更新:そこに示されているようにバッチファイルを使用しました。バッチファイル内のphpの前にniceコマンドを使用しました。唯一の違いは次のとおりです。

nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB

同じナイス プロパティを使用して追加の php スクリプトを実行するためのコマンドをさらに追加しました。それらはすべてうまくいきました。

入力してくれてありがとう

于 2013-01-17T03:32:46.390 に答える
0

どちらでも構いません。niceCron ジョブ自体にを配置すると、ジョブ全体の優先度に影響します。しかし、スクリプトには 1 つのコマンドしか含まれておらず、その優先度を設定するのが本当に理にかなっているので、スクリプト内で実行しても実際には問題なく機能します。

于 2013-01-17T07:43:56.537 に答える