Thinkphp3 2定時執行任務

2021-08-20 04:06:22 字數 1505 閱讀 3336

之前開發的拼團的時候,有用到過定時任務,但是因為定時不是我負責的,所以也只是粗略的看了下。

新增入口檔案cli.php

在thinkphp的同級目錄index.php下新建乙個cli.php

<?php

/** * created by phpstorm.

* user: loveteemo

* date: 2017/9/22

* time: 16:42

*/// 應用入口檔案

// 檢測php環境

if(version_compare(php_version,'5.3.0','<')) die('require php > 5.3.0 !');

// 開啟除錯模式 建議開發階段開啟 部署階段注釋或者設為false

//繫結模組 省略home

define('bind_module','home');

// 定義應用目錄

// 引入thinkphp入口檔案

require dirname(__file__).'/thinkphp/thinkphp.php';

// 親^_^ 後面不需要任何**了 就是如此簡單

其中需要注意幾點

1、定義的應用目錄和框架目錄需要用絕對位址

2、定義訪問mode為cli模式

新增配置檔案cli.php

在thinkphp/mode目錄下新增cli.php,內容為複製common.php

然後注釋掉日誌配置

//'think\log'               => core_path . 'log'.ext,
新增linux下編輯定時任務

crontab -e
新增每分鐘執行一次的定時寫入資料庫日誌表測試

* * * * * /bin/sh /var/www/html/專案名/cli.sh
寫入完成後,重啟 crond 服務,給與該 cli.sh 的可執行許可權

#!/bin/sh

/usr/bin/php56 /var/www/html/專案名/cli.php /help/test;

檢視資料庫中是否每分鐘增加一行資料

public

function

test

()else

//定時任務已完成

m("log")->add(array("msg"=>"定時執行任務".date('y-m-d h:i:s')));

}

因為我繫結是home模組,所以這裡執行的時候沒有寫模組名,cli.php [模組/控制器/函式] 訪問該位址

假如遇到不執行,請按順序排查sh**,入口檔案,定時服務,php**。

ThinkPHP3 2 驗證隨記

自動完成 靜態方式 在模型類裡面通過 auto屬性定義處理規則。動態方式 使用模型類的auto方法動態建立自動處理規則。自動驗證 靜態方式 在模型類裡面通過 validate屬性定義驗證規則。動態方式 使用模型類的validate方法動態建立自動驗證規則。定義格式為 array array 驗證欄位...

THINKPHP3 2命名空間

thinkphp3.2命名空間 3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。由於新版完全採用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與類庫檔案的目錄一致,那麼就可以實現類的自動載入。例如,...

ThinkPHP3 2 搭載環境

thinkphp是乙個快速 簡單的基於mvc和物件導向的輕量級php開發框架 預設情況下當你執行index.php時只有home模組,如果你需要建立其他模組時需要在入口檔案 index.php 中定義 define bind module admin 繫結入口到admin模組訪問 bind modu...