首頁 >php框架 >ThinkPHP >ThinkPHP實作定時任務案例

ThinkPHP實作定時任務案例

angryTom
angryTom轉載
2020-03-11 09:50:3311635瀏覽

本篇文章介紹了使用ThinkPHP實現定時任務的方法,和cron實現定時任務的方法,希望對學習thinkphp的朋友有幫助!

ThinkPHP實作定時任務案例

#ThinkPHP實作定時任務案例

定時任務常見的是Linux中的crontab定時任務,這種是透過編寫腳本來執行的,它會在後台一直循環執行。但是有時候我們沒有伺服器權限或是說我們沒有獨立的伺服器,那又該怎麼辦?其實,定時任務還有一種就是被動是,只要存取專案就會觸發,被動式定時任務一般用於虛擬主機,因為沒有伺服器權限我們只能透過程式碼來實現。以下我們以thinkPHP為例來分析這兩種定時任務的差異。

(推薦教學:thinkphp教學

無動式定時任務

①、tags.php

ThinkPHP實作定時任務案例

ThinkPHP實作定時任務案例

######################################################## #在/Application/Common/Conf目錄下新建tags.php檔案。 (此和方法一處一樣)###
<?php  
  
return array(  
    //&#39;配置项&#39;=>&#39;配置值&#39;  
    &#39;app_begin&#39; =>array(&#39;Behavior\CronRunBehavior&#39;),  
);
###②、crons.php######在/Application/Common/Conf目錄下新建crons.php檔案。 (此處和方法一有區別,注意區分。)###
<?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,然後我們會發現在Application/Runtime/目錄下產生了~crons.php文件,同時頁出現如下效果,文件內容如下:###
<?php
return array (
  &#39;cron&#39; => 
  array (
    0 => &#39;myplan&#39;,
    1 => 2,
    2 => 1502089802,
  ),
);
?>
###############主動式定時任務#########①、登入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
#############(免費學習影片教學分享:###php影片教學###)###

以上是ThinkPHP實作定時任務案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:www.100txy.com。如有侵權,請聯絡admin@php.cn刪除