ホームページ  >  記事  >  バックエンド開発  >  PHPのスケジュールされたタスク

PHPのスケジュールされたタスク

巴扎黑
巴扎黑オリジナル
2016-11-24 15:16:431000ブラウズ

(1) スケジュールされたタスクを設定した後、プログラムを 1 回起動するだけで済み、その後はサーバーが再起動されるまでプログラムは実行され続けます
(2) 繰り返し実行すると、期待どおりの結果が得られない可能性があります。この場合、複数の同じスケジュールされたタスクが開始されます
(3) すべてのページにこのページが含まれる場合、複数の永続的に実行されるプログラムが開始され、不必要なシステム リソースが消費されます
ページの通常のアクセスにも影響します。先頭に配置すると、常に戻り待ちの状態 (無限ループ) でアクセスされます。
ignore_user_abort(true); // クライアントが切断されても (ブラウザを閉じるなど)、 )、PHP スクリプトは実行を継続できます。
set_time_limit(0); // PHP のデフォルトの実行時間は 30 秒です。set_time_limit(0) を使用すると、プログラムは無制限に実行できます。 =60*5; // 5 分ごとに実行します
$f = 'lock .txt';
if(file_exists($f)){ //マークされたファイルが存在するかどうかを判断し、存在する場合は繰り返し実行を防ぐために終了します
exit();
}
do{
if(@get_file_contents($f) == 'stop'){ //停止する場合は、スケジュールされたタスク
にstopを書き込むだけです。タスクコードを省略します
sleep($interval);//プログラムは 5 分間一時停止します
}while(true);
@unlock($f); //マークされたファイルを削除します
?>


これは単なる方法ですコードで実装するもう 1 つの方法は、Php cli モードを使用してスケジュールされたタスクを実装することです

たとえば、ウィンドウの下で run->cmd

を使用して php.exe を実行し、内部の要件に従って AT を押すだけです。それ

システムが異なればメソッドも異なり、Linux も異なります。具体的には実装されていませんが、間違いなく可能です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。