2

PHPでいくつかのスクリプトを実行するために、データベースにいくつかのエントリを設定しました。したがって、数分ごとに cron ファイルを実行して、次の数分間に実行するスクリプトがあるかどうかを確認します。それらをトリガーします。12:10 に実行するスクリプトがある場合、何が起こるか疑問に思っています。 5 分後、最初のスクリプトの実行がまだ完了していないときに、12:12 に同じスクリプトを実行する別の要求があった場合はどうなりますか。実行が完了するまでファイルはロックされますか? または何?

異なるタイミングで実行される同じファイルです。

cronタブでこれを行うことができると思いますが、それは好みません。

4

2 に答える 2

2

同時に実行しても問題はありませんが、同じファイル/データベース テーブルに書き込むと問題が発生する可能性があることに注意してください。

于 2012-11-26T17:21:58.450 に答える
2

スクリプトを 2 回、3 回、または好きなだけ実行します。このスクリプトを一度に 1 つずつ実行したい場合は、ロック ファイルを作成し、それが存在するかどうかを確認できます。例:

if(file_exists('/tmp/script.lock')){
  exit();
}
file_put_contents('/tmp/script.lock','');

// execute code

unlink('/tmp/script.lock');
于 2012-11-26T17:23:20.177 に答える