スケジュールされたタスクの ThinkPHP 実装ケース

angryTom
リリース: 2020-03-11 09:50:33
転載
11613 人が閲覧しました

この記事では、ThinkPHP を使用してスケジュールされたタスクを実装する方法と、cron を使用してスケジュールされたタスクを実装する方法を紹介します。thinkphp を学習している友人の役に立てば幸いです!

スケジュールされたタスクの ThinkPHP 実装ケース

スケジュールされたタスクの ThinkPHP 実装ケース

#最も一般的なスケジュールされたタスクは、Linux の crontab スケジュールされたタスクです。これは、スクリプトを記述することで実行されます。バックグラウンドでループで実行されます。しかし、サーバー権限がない場合や、独立したサーバーがない場合はどうすればよいでしょうか?実際には、プロジェクトにアクセスしている限りトリガーされる、パッシブなスケジュールされたタスクの別のタイプがあります。パッシブなスケジュールされたタスクは、サーバーのアクセス許可がなければコードを通じてのみ実装できるため、通常は仮想ホストに使用されます。 thinkPHP を例として、これら 2 つのスケジュールされたタスクの違いを分析してみましょう。

(推奨チュートリアル: thinkphp チュートリアル)

パッシブスケジュールタスク

①、tags.php

/Application/Common/Conf ディレクトリに新しい tags.php ファイルを作成します。 (方法 1 と同じです)

<?php  
  
return array(  
    //&#39;配置项&#39;=>&#39;配置值&#39;  
    &#39;app_begin&#39; =>array(&#39;Behavior\CronRunBehavior&#39;),  
);
ログイン後にコピー

②, crons.php

/Application/Common/Conf ディレクトリに新しい crons.php ファイルを作成します。 (方法 1 とは異なりますので、区別に注意してください。)

<?php  
  
return array(  
    //myplan为我们计划定时执行的方法文件,2是间隔时间,nextruntime下次执行时间  
    //此文件位于/Application/Cron/目录下  
    &#39;cron&#39; => array(&#39;myplan&#39;, 2, nextruntime),  
);
ログイン後にコピー

③, myplan.php

/Application/Common/ ディレクトリに新しい Cron フォルダーを作成し、そのドキュメント内の新しいファイル myplan.php。

<?php  
  
echo date("Y-m-d H:i:s")."执行定时任务!" . "\r\n<br>";
ログイン後にコピー

この時点で、プロジェクトの URL にアクセスすると、~crons.php ファイルが Application/Runtime/ ディレクトリに生成されていることがわかります。同時に、ページには次の内容が表示されます。次のような効果があり、ファイルの内容は次のとおりです。

<?php
return array (
  &#39;cron&#39; => 
  array (
    0 => &#39;myplan&#39;,
    1 => 2,
    2 => 1502089802,
  ),
);
?>
ログイン後にコピー

スケジュールされたタスクの ThinkPHP 実装ケース

アクティブなスケジュールされたタスク

①、Linux にログインします。サーバー

[root@iZwz924w5t4862mn4tgcyqZ ~]# crontab -e
*/1 * * * * /usr/local/php/bin/php /data/wwwroot/door/test.php//执行PHP文件
*/1 * * * * /usr/bin/curl http://www.100txy.com/wechatapi.php//访问url
ログイン後にコピー

②、test.php

<?php
  $txt = "/data/wwwroot/door/test.txt";
  // die(var_dump($txt));
  $date=date(&#39;Y-m-d H:i:s&#39;,time());
  $content = file_get_contents($txt);
  if($content!=&#39;&#39;){
    $arr=explode(&#39;#&#39;,$content);
    $num=$arr[&#39;1&#39;]+1;
    $string=$date.&#39;#&#39;.$num;
  }else{
    $string=$date.&#39;#&#39;.&#39;1&#39;;
  }
  file_put_contents($txt,$string);
  $content_last = file_get_contents($txt);
  return $content_last;
ログイン後にコピー

③を編集、バックエンド監視test.txtファイル

[root@iZwz924w5t4862mn4tgcyqZ ~]# tail -f /data/wwwroot/door/test.txt
ログイン後にコピー

スケジュールされたタスクの ThinkPHP 実装ケース

(無料の学習ビデオチュートリアル共有: phpビデオチュートリアル)

以上がスケジュールされたタスクの ThinkPHP 実装ケースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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