私のシステムでは、毎分実行するPHPジョブをスケジュールしました。PHPジョブインスタンスの確認方法
このジョブのインスタンスが1つ実行されていて、1分以上かかる場合、毎分後に起動する新しいインスタンスは、以前のインスタンスが動作していて以前のインスタンスが実行されているかどうかをチェックします。それ自身を殺す...私はsystem()コマンドを試していたが、それを理解できなかった。
任意の妊娠
私のシステムでは、毎分実行するPHPジョブをスケジュールしました。PHPジョブインスタンスの確認方法
このジョブのインスタンスが1つ実行されていて、1分以上かかる場合、毎分後に起動する新しいインスタンスは、以前のインスタンスが動作していて以前のインスタンスが実行されているかどうかをチェックします。それ自身を殺す...私はsystem()コマンドを試していたが、それを理解できなかった。
任意の妊娠
ロックファイルに排他的なファイルロックを使用します。プロセスが実行を終了すると、ロックは自動的に解放されます。
<?php
$fp = fopen("/var/tmp/your.lock", "w");
if (!flock($fp, LOCK_EX|LOCK_NB)) { // try to get exclusive lock, non-blocking
die("Another instance is running");
}
[... continue with the script ...]
いくつかの解決策があります。すべての人に共通することは、ジョブの開始時にフラグを設定し、ジョブが完了したらフラグをクリアすることです。ジョブが開始されたときにそのフラグの存在をチェックします。擬似コードで
:あなたは、インスタンスのためのあなたのフラグとしてファイルを作成することができます
if (flag is set)
exit
set flag
do some stuff
clear flag
。あるいは、memcacheにキーを作成し、これをフラグとして使用することもできます。データベース、または他の何か。
2番目のインスタンスは、あまりにも多くの時間を待って.... – Harikrishnan