Home  >  Article  >  PHP Framework  >  ThinkPHP implementation of scheduled tasks case

ThinkPHP implementation of scheduled tasks case

angryTom
angryTomforward
2020-03-11 09:50:3311373browse

This article introduces the method of using ThinkPHP to implement scheduled tasks, and the method of using cron to implement scheduled tasks. I hope it will be helpful to friends who are learning thinkphp!

ThinkPHP implementation of scheduled tasks case

ThinkPHP implementation of scheduled task case

The most common scheduled task is the crontab scheduled task in Linux. This is executed by writing a script, and it will be executed in a loop in the background. But sometimes we don’t have server permissions or we don’t have an independent server, so what should we do? In fact, there is another type of scheduled tasks that is passive, which will be triggered as long as the project is accessed. Passive scheduled tasks are generally used for virtual hosts, because without server permissions we can only implement them through code. Let's take thinkPHP as an example to analyze the difference between these two scheduled tasks.

(Recommended tutorial: thinkphp tutorial)

Passive scheduled tasks

①、tags.php

Create a new tags.php file in the /Application/Common/Conf directory. (This is the same as method 1)

<?php  
  
return array(  
    //&#39;配置项&#39;=>&#39;配置值&#39;  
    &#39;app_begin&#39; =>array(&#39;Behavior\CronRunBehavior&#39;),  
);

②, crons.php

Create a new crons.php file in the /Application/Common/Conf directory. (This is different from method 1, please pay attention to the distinction.)

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

③, myplan.php

Create a new Cron folder in the /Application/Common/ directory, and create a new file myplan.php in it document.

<?php  
  
echo date("Y-m-d H:i:s")."执行定时任务!" . "\r\n<br>";

At this point we can access the url of the project, and then we will find that the ~crons.php file is generated in the Application/Runtime/ directory. At the same time, the page will have the following effect, and the file content is as follows:

<?php
return array (
  &#39;cron&#39; => 
  array (
    0 => &#39;myplan&#39;,
    1 => 2,
    2 => 1502089802,
  ),
);
?>

ThinkPHP implementation of scheduled tasks case

Active scheduled tasks

①, log in to the Linux server

[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

②, edit 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;

③、Backend monitoring test.txt file

[root@iZwz924w5t4862mn4tgcyqZ ~]# tail -f /data/wwwroot/door/test.txt

ThinkPHP implementation of scheduled tasks case

(Free learning video tutorial sharing: php video tutorial)

The above is the detailed content of ThinkPHP implementation of scheduled tasks case. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:www.100txy.com. If there is any infringement, please contact admin@php.cn delete