を参照してくださいと本質的に同等ですスクリプトはもう2回、cronで始めるのではなく、別のPHPスクリプトから呼び出されませんか? (その場合、require_onceは正しい答えになります)
私が理解しているように、スクリプトが実行されていることを示すマーカーを保存し、スクリプトの最後にそのマーカーを削除する必要があります。
環境によっては、小さなファイル(.lock
)を作成するか、ステータス=ロックされたエントリをデータベースに保存することができます。
編集:ここでのファイル方式を使用して、小さなコードの例です:
<?php
// cron.php
$path = '/path/to/your/data/directory/';
if (file_exists($path . '.lock') {
die('cron.php is already running');
}
// if script reaches this point, it is not locked -> create a lock
file_put_contents($path . '.lock', 'lockfile created at ' . now());
//... your code....
//unlocking
unlink($path . '.lock');
?>
既存のcron.phpがすでに実行されている場合、cronジョブcron.phpが実行されないようにしたいのですか? (これは現在の回答とは異なるので、明らかにする必要があります) – Ben
私の答えを見て、どこか遅れているかどうか教えてください –
あなたのスクリプトの最後の実行時間をどこかに保存する必要がありますデータベース、テキストファイル)。最後の実行時間/日付(userIDなど)を確認し、何らかの条件(タイムアウト)が与えられた場合にのみスクリプトを実行します。 – djot