首頁 > php框架 > ThinkPHP > 主體

ThinkPHP實作定時任務案例

angryTom
發布: 2020-03-11 09:50:33
轉載
11615 人瀏覽過

本篇文章介紹了使用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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板