0

cronjob を使用して php スクリプトをアクティブにしています。ブラウザから手動で実行すると、スクリプトのロードに 3 ~ 4 秒かかり、結果がデータベースに出力されます。

cron ジョブが実行すると、割り当てられた時間内にスクリプトを完了できず、途中で cron ジョブがスクリプトのロードを停止するようです。cron は約 1/10 の時間で動作し、残りの 9/10 で完了に失敗します。タスク。cron ジョブがスクリプトをアクティブにするたびに、スクリプトが完全にロードされるようにする方法はありますか?

スクリプトはシンプルで完全に php ベースです。助言がありますか?

4

1 に答える 1

2

ロックファイル(オーバーラン保護)ソリューションを実装することをお勧めします。基本的に、スクリプトが開始すると、ロックファイルのチェックが実行されます。ロックファイルが存在する場合、スクリプトは前の呪文がまだ実行されていると見なすことができるため、実行が停止します。また、スクリプトが完了すると、ロックファイルが削除されるため、後続の実行でロックファイルチェックに合格し、完全に実行できます。

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

詳細についてはグーグルで検索できますが、ここにロックファイルの例があるサイトがあります。

于 2012-05-03T23:51:03.590 に答える