亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

ThinkPHP框架實現定時執行任務的兩種方法分析

2024-05-05 00:05:15
字體:
來源:轉載
供稿:網友

本文實例講述了ThinkPHP框架實現定時執行任務的兩種方法。分享給大家供大家參考,具體如下:

在平常的項目中我們總是會遇到需要將某個方法任務定時執行的問題,定時執行方法任務如果我們擁有服務器的權限,我們可以直接在服務器設置定時任務,例如在Windows的任務計劃程序中進行設置,在Linux中編寫腳本進行執行。如果我們沒有服務器權限,我們該如何使用項目的程序代碼來自動定時執行呢?接下來就為大家描述一個基于ThinkPHP框架定時執行任務的例子,具體的方法會在下面進行詳細的描述。

關于定時執行任務在這里需要提醒的是, 這里描述的方法是被動執行的,也就是說當系統網站產生訪問的時候,程序會對比是否達到定時的要求或者說是否達到執行任務的時間來決定是否執行方法任務,如果達到則執行,否則不執行。另外,如果網站沒有任何訪問和請求則也是同樣不執行,如果大家有發現或者知道了如何主動執行定時任務,煩請留言告知,我也學習一下。

1、方法一:v3.2.1

①、ThinkPHP/Library/Behavior/CronRunBehavior.class.php文件

在這里首先要說的就是這個自動執行任務文件,官方所給的這個文件存在BUG,我是用的是v3.2.1版本,后面的版本是否有改正大家可以嘗試一下。

<?php/** * ======================================= * Created by WeiBang Technology. * Author: ZhiHua_W * Date: 2016/9/22 0005 * Time: 上午 11:12 * Project: ThinkPHP實現定時執行任務 * Power: 自動執行任務 * ======================================= */namespace Behavior;class CronRunBehavior{  public function run(&$params)  {    if (C('CRON_CONFIG_ON')) {      $this->checkTime();    }  }  private function checkTime()  {    if (F('CRON_CONFIG')) {      $crons = F('CRON_CONFIG');    } else if (C('CRON_CONFIG')) {      $crons = C('CRON_CONFIG');    }    if (!empty($crons) && is_array($crons)) {      $update = false;      $log = array();      foreach ($crons as $key => $cron) {        if (empty($cron[2]) || $_SERVER['REQUEST_TIME'] > $cron[2]) {          G('cronStart');          R($cron[0]);          G('cronEnd');          $_useTime = G('cronStart', 'cronEnd', 6);          $cron[2] = $_SERVER['REQUEST_TIME'] + $cron[1];          $crons[$key] = $cron;          $log[] = 'Cron:' . $key . ' Runat ' . date('Y-m-d H:i:s') . ' Use ' . $_useTime . ' s ' . "/r/n";          $update = true;        }      }      if ($update) {        /Think/Log::write(implode('', $log));        F('CRON_CONFIG', $crons);      }    }  }}

此段代碼已經將bug修復,大家可以將其復制到 “ ThinkPHP/Library/Behavior/CronRunBehavior.class.php ” 文件中進行保存。

②、tgs.php

Application/Common/Conf文件夾中新建tags.php文件,進行標簽設置。

<?phpreturn array(    //'配置項'=>'配置值'    'app_begin' =>array('Behavior/CronRunBehavior'),);

③、config.php

Application/Common/Conf文件夾中的config.php文件進行自動運行配置。

<?phpreturn array(    /* 自動運行配置 */    'CRON_CONFIG_ON' => true, // 是否開啟自動運行    'CRON_CONFIG' => array(      '測試執行定時任務' => array('Home/Index/crons', '5', ''), //路徑(格式同R)、間隔秒(0為一直運行)、指定一個開始時間    ),);

④、IndexController.class.php

Application/Home/Controller/IndexController.class.php文件中進行定時執行任務的編寫。

<?php/** * ======================================= * Created by WeiBang Technology. * Author: ZhiHua_W * Date: 2016/9/22 0005 * Time: 上午 11:20 * Project: ThinkPHP實現定時執行任務 * Power: 自動執行任務方法控制器 * ======================================= */namespace Home/Controller;use Think/Controller;class IndexController extends Controller{  /*  public function index(){  $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微軟雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>歡迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');  }  */  public function index()  {    $contents = file_get_contents("test.txt");    //每次訪問此路徑將內容輸出,查看內容的差別    var_dump($contents);    exit;    $this->assign("contents", $contents);    $this->display();  }  //定時執行的方法  public function crons()  {    //在文件中寫入內容    file_put_contents("test.txt", date("Y-m-d H:i:s") . "執行定時任務!" . "/r/n<br>", FILE_APPEND);  }}

這樣定時執行任務我們就寫好了,每隔5秒我們訪問任何項目的url,然后查看根目錄下的test.txt文件就會發現里面的內容變化。

注意:當你修改間隔時間時會發現沒有生效,這是你需要將Runtime/Data文件夾下的緩存文件刪除,間隔時間緩存存放在CRON_CONFIG.php文件中。

純凈的項目文件點擊此處本站下載。歡迎大家下載指正。

2、方法2:v3.2.2

此方法和方法一沒有多大的區別。

①、tags.php

/Application/Common/Conf目錄下新建tags.php文件。(此和方法一處一樣)

<?phpreturn array(    //'配置項'=>'配置值'    'app_begin' =>array('Behavior/CronRunBehavior'),);

②、crons.php

/Application/Common/Conf目錄下新建crons.php文件。(此處和方法一有區別,注意區分。)

<?phpreturn array(    //myplan為我們計劃定時執行的方法文件,2是間隔時間,nextruntime下次執行時間    //此文件位于/Application/Cron/目錄下    'cron' => array('myplan', 2, nextruntime),);

③、myplan.php

/Application/Common/目錄下新建 Cron文件夾,里面新建文件myplan.php文件。

<?phpecho date("Y-m-d H:i:s")."執行定時任務!" . "/r/n<br>";

此時我們就可以訪問項目的url,然后我們會發現在Application/Runtime/目錄下生成了~crons.php文件,文件內容如下:

<?php  return array (    'cron' =>      array (        0 => 'myplan',        1 => 60,        2 => 1398160322,      ),  );?>

這樣就可以觀察結果了!

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕视频在线观看| 日韩在线视频国产| 在线电影欧美日韩一区二区私密| 色偷偷偷综合中文字幕;dd| 亚洲国产精品久久精品怡红院| 97在线观看免费| 国产精品久久久久久超碰| 亚洲偷欧美偷国内偷| 一道本无吗dⅴd在线播放一区| 人妖精品videosex性欧美| 亚洲天堂第二页| 国内免费精品永久在线视频| 国产精品色午夜在线观看| 欧美午夜激情小视频| 亚洲在线免费观看| 日韩性xxxx爱| 精品一区二区亚洲| 51色欧美片视频在线观看| 97精品国产97久久久久久春色| 91免费欧美精品| 亚洲天堂开心观看| 久久国产色av| 欧美区在线播放| 久久久久久伊人| 久久伊人精品一区二区三区| 欧美三级欧美成人高清www| 2021国产精品视频| 色综合视频一区中文字幕| 日韩一级黄色av| 97国产suv精品一区二区62| 国产有码一区二区| 久久精品国产成人精品| 5566日本婷婷色中文字幕97| 成人www视频在线观看| 国产精品av免费在线观看| 国内精品伊人久久| 555www成人网| 欧美裸体xxxx极品少妇| 欧美极品第一页| 亚洲欧洲激情在线| 欧美在线性爱视频| 欧美激情国产精品| 亚洲精品大尺度| 亚洲最大av在线| 国产精品免费久久久久影院| 久久人人爽人人爽人人片亚洲| 亚洲视频777| 久久精品国产清自在天天线| 最新中文字幕亚洲| 国产午夜精品美女视频明星a级| 亚洲午夜久久久久久久| 国产精品久久久久久久久久久久久久| 久久精品国产一区| 97视频在线观看成人| 亚洲精品欧美日韩专区| 热re91久久精品国99热蜜臀| 91久久精品久久国产性色也91| 成人福利视频在线观看| 欧美日韩福利视频| 狠狠操狠狠色综合网| 欧美日韩国产成人在线观看| 欧美一性一乱一交一视频| 欧美wwwxxxx| 最新国产精品亚洲| 一区二区欧美亚洲| 亚洲精品456在线播放狼人| 亚洲韩国欧洲国产日产av| 黑人巨大精品欧美一区二区三区| 亚洲精品福利免费在线观看| 久久99视频免费| 日韩精品免费综合视频在线播放| 91豆花精品一区| 成人h片在线播放免费网站| 日韩免费中文字幕| 亚洲欧美中文日韩v在线观看| 亚洲激情免费观看| 欧美成人午夜激情视频| 国产精品久久久久久久9999| 久久久久久久久综合| 在线不卡国产精品| 亚洲人成网7777777国产| 一区二区三区亚洲| 日韩成人xxxx| 日韩中文视频免费在线观看| 一区二区国产精品视频| 亚洲综合在线小说| 国产精品精品久久久| 性金发美女69hd大尺寸| 欧美放荡办公室videos4k| 中文字幕精品久久久久| 成人精品一区二区三区电影黑人| 精品久久香蕉国产线看观看gif| 久久久人成影片一区二区三区观看| 秋霞成人午夜鲁丝一区二区三区| 亚洲电影免费在线观看| 亚洲精品美女久久| 亚洲美女在线观看| 欧美性生交xxxxx久久久| 26uuu日韩精品一区二区| 国产精品久久久久久亚洲调教| 国产欧美精品久久久| 成人www视频在线观看| 日韩av网站电影| 国模精品系列视频| 亚洲黄色av网站| 在线观看久久av| 在线亚洲午夜片av大片| 一区二区三区久久精品| 国产精品狼人色视频一区| 国产精品视频一区二区高潮| 精品亚洲一区二区三区| 日韩成人在线视频网站| 黄色一区二区三区| 欧美日韩高清区| 国产不卡一区二区在线播放| 亚洲最新中文字幕| 国产suv精品一区二区| 欧美性69xxxx肥| 伊人伊人伊人久久| 亚洲国产欧美一区二区三区久久| 国产美女扒开尿口久久久| 欧美日韩免费区域视频在线观看| 国产精品久久久久久久久久新婚| 91麻豆国产精品| 日韩精品中文字幕在线| 欧美老女人在线视频| 大胆人体色综合| 性欧美xxxx视频在线观看| 亚洲欧美在线免费观看| 中文字幕综合在线| 成人综合网网址| 国产精品成熟老女人| 中日韩美女免费视频网址在线观看| 成人福利网站在线观看| 日韩国产在线看| 欧美在线xxx| 中文字幕不卡在线视频极品| 久久久久久久久久av| 亚洲欧美日韩在线高清直播| 日本成人黄色片| 91在线国产电影| 国产欧美日韩亚洲精品| 永久免费毛片在线播放不卡| 国产精品99久久久久久久久| 国产精品久久久久久超碰| 中文综合在线观看| 黄色成人在线播放| 一区二区三区视频免费在线观看| 另类美女黄大片| 在线电影中文日韩| 色小说视频一区| 91午夜在线播放| 正在播放欧美视频| 成人自拍性视频| 欧美激情奇米色| 久久精品这里热有精品| 欧美亚洲在线视频| 一区二区三区久久精品| 欧美色图在线视频| 69久久夜色精品国产7777| 亚洲最大福利视频网| 66m—66摸成人免费视频| 2023亚洲男人天堂| 日韩精品视频在线免费观看|