スケジュールされたタスクの PHP 実装の詳細な説明

WBOY
リリース: 2016-07-29 09:09:30
オリジナル
1104 人が閲覧しました

PHP はこの点では比較的弱いと言えます。PHP のみを使用して実装する場合は、次のように実装できます。

<&#63;php
 ignore_user_abort();//关闭浏览器后,继续执行php代码
 set_time_limit(0);//程序执行时间无限制
 $sleep_time = 1;//多长时间执行一次
 do{
 $fp = fopen('test.txt','a+');
 fwrite($fp,"这是一个php博客:phpddt.com \n");
 fclose($fp);
 sleep($sleep_time);
 }while(true);
 
&#63;>

ログイン後にコピー

しかし、スクリプトを実行すると、ブラウザを閉じても実装できません。プログラムをまったく停止しないので、スクリプトを実行するにはスイッチが必要です。 while ループ中にスイッチ変数を含めるだけで実装できます。次に、次のように実現できます:
次の内容で外部インポート変数ファイル switch.php を作成します:

<&#63;php
return 1;//1执行脚本 0退出执行脚本
&#63;>
ログイン後にコピー

改良されたスクリプトは次のとおりです:

<&#63;php
 ignore_user_abort();//关闭浏览器后,继续执行php代码
 set_time_limit(0);//程序执行时间无限制
 $sleep_time = 5;//多长时间执行一次
 $switch = include 'switch.php';
 while($switch){
 $switch = include 'switch.php';
 $fp = fopen('test.txt','a+');
 fwrite($fp,"这是一个php博客:phpddt.com $switch \n");
 fclose($fp);
 sleep($sleep_time);
 }
 exit();
 
&#63;>

ログイン後にコピー

このスクリプトはテストのみに使用できます。ランプの場合、比効率は高くてはいけません。これは crontab を使用して実現できます。
小さなコードを追加します:

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
  //这里是你要执行的代码  
  sleep($interval);// 等待5分钟
}while(true);
ログイン後にコピー

これは、PHP スケジュール実行タスクの実装に関するものです。後で共有する関連記事もありますのでお見逃しなく。

上記では、PHP でスケジュールされたタスクを実装する方法について、さまざまな側面を含めて詳しく説明しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!