TP5 用cron实现linux定时任务
TP5 用cron实现linux定时任务
1) tp5的控制器内容:
namespace app\test\controller;
use think\Controller;
use think\facade\Log;
class Test extends Controller{
public function testCrontab(){
// 定时执行的代码。。。 开始
Log::error('start test crond demo.....');
Log::error('end test crond demo.....');
// 定时执行的代码。。。 结束
}
}
2) 新建文件:crontab.sh,写入以下内容,并放在项目的根目录,(如果是TP5,与public目录平级)
#!/bin/bash
/server/php-5.6.38/bin/php /project/test_project/public/index.php test/test/testCrontab
说明:public为tp5的执行目录,test/test/testCrontab为:模块/控制器/操作
3). linux后台,输入 crontab -e,写入以下内容(第一个sh后面的路径为第2步的crontab.sh的全路径),写入的内容将生成一个文件,自动保存为/var/spool/cron/root文件,root为当前linux登录的用户名。
*/1 * * * * sh /[项目根目录]/crontab.sh
说明: 前面5个星意义:
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
4)重启crond服务
service crond restart
说明:crontab -l 可以查看当前的定时任务。
5) 经过以上配置,上述TP5的控制器内的操作1分钟将会执行一次。
public function testCrontab(){
// 定时执行的代码。。。 开始
Log::error('start test crond demo.....');
Log::error('end test crond demo.....');
// 定时执行的代码。。。 结束
}