2012-05-03 16 views
0

私はcronジョブを使ってPHPスクリプトを起動しています。ブラウザから手動で実行すると、スクリプトの読み込みに3-4秒かかり、結果がデータベースに出力されます。Cronジョブを使用してPHPスクリプトを起動しても、完全に実行されていません

cronジョブを実行すると、スクリプトはアロート時間内に完了できず、cronジョブがスクリプトの途中でロードを停止するように見えます。cronは約1/10、残りの9/10回タスクを完了できません。 cronジョブを起動するたびにスクリプトが完全に読み込まれるようにする方法はありますか?

スクリプトは完全にPHPベースの単純です。助言がありますか?

+0

スクリプトを確認できますか? –

+0

スクリプトをどのように実行しますか?/usr/bin/php file.phpまたはwget http://localhost/file.phpを使用していますか? – Peter

+1

あなたのcrontabエントリーとあなたのPHPコードのポジションは気になりますか? –

答えて

2

ロックファイル(オーバーラン保護)ソリューションを実装することをお勧めします。基本的にスクリプトが起動すると、ロックファイルのチェックが行われ、ロックファイルが存在する場合、スクリプトは前のコマンドを実行しているとみなして実行を停止します。スクリプトが完了すると、ロックファイルが削除され、後続の実行でロックファイルのチェックが渡され、その全体が実行されます。

通常、ロックファイルには、スクリプトによって生成されたプロセスIDが含まれており、通常は/var/lock/my_script.lockのような場所にあります。

詳細はGoogleを参照してください。ただし、ここにはロックファイルのあるsiteがあります。

関連する問題