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 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( //'配置项'=>'配置值' 'app_begin' =>array('Behavior\CronRunBehavior'), );
②, 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/目录下 'cron' => array('myplan', 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 ( 'cron' => array ( 0 => 'myplan', 1 => 2, 2 => 1502089802, ), ); ?>
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('Y-m-d H:i:s',time()); $content = file_get_contents($txt); if($content!=''){ $arr=explode('#',$content); $num=$arr['1']+1; $string=$date.'#'.$num; }else{ $string=$date.'#'.'1'; } 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
(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!