ホームページ > バックエンド開発 > PHPチュートリアル > PHP のスケジュールされたタスクの実行について質問してください。

PHP のスケジュールされたタスクの実行について質問してください。

WBOY
リリース: 2016-06-23 14:05:38
オリジナル
890 人が閲覧しました

ignore_user_abort(); // 関数の設定がクライアントから切断されるとスクリプトの実行が終了します
set_time_limit(0) // set_time_limit(0) により、プログラムは無制限に実行できます
$interval= 5; // 5 秒ごとに実行

do{
$fp = @fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s"); . " PHP を定期的に実行しましょう! n");
fclose($fp);// 5 秒待ちます
// スケジュールされたタスクの終了条件を設定します
if (file_exists('lock.txt') )
{
Break;
}
}while(true);

たとえば、このようなスケジュールされた実行タスクが実装されます。しかし、このページを複数回呼び出すと、複数のタスクが開始されてしまうという問題があります。この状況に対処する方法について専門家のアドバイスはありますか?


ディスカッションへの返信 (解決策)


cron はファイルを定期的に (1 分ごとに 1 回) 実行します。 * * * * * php /var/www/html/scriptname.php >/dev/null 2>&1

set_time_limit(60);

if(php_sapi_name() == 'cli'){ // サーバー側でのみ実行可能
// メインコード部分
}

または、ファイルを html ディレクトリの外に置く
cronこのファイルを定期的に実行します (1 分ごとに 1 回実行されます)。 * * * * * php /var/user/admin/scriptname.php >/dev/null 2>&1

set_time_limit(60)
// メインコード部分
;




スケジュールされたタスク管理テーブルを追加して、実行中またはすでに実行されていることを示し、さまざまな状況に応じてタスクを実行するかどうかを決定できます

サーバー上にフラグ ファイルを追加できます。ファイルの存在を確認します。ファイルが存在しない場合、タスクは進行中ではありません。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート