首页 网络编程 前端制作 数据库 CMS教程 脚本编程 微信开发 服务器 小程序 框架 手机APP

thinkphp

热门: ASP.NET PHP编程 ASP编程 JSP编程

thinkphp5 定时任务

来源:未知 发布时间:2019-08-21
前段时间在研究thinkphp5.0版本做自动任务的时候,碰到了棘手的问题–如何做自动化任务,因为程序开始就需要一直执行,查了很多资料,都说靠php原生的死循环来做不靠谱,时间误差也没法保证,所以后面采用thinkphp5的command工具和服务器的定时任务来做:
 
1.新建command文件
在application/模块/新建一个command文件夹/Test.class.php
 
<?php
namespace app\admin\command;
 
use think\console\Command;
use think\console\Input;
use think\console\Output;
 
class Test extends Command
{
    protected function configure(){
        $this->setName('Test')->setDescription("计划任务 Test");
    }
 
    protected function execute(Input $input, Output $output){
        $output->writeln('Date Crontab job start...');
        /*** 这里写计划任务列表集 START ***/
 
        $this->test();
 
        /*** 这里写计划任务列表集 END ***/
        $output->writeln('Date Crontab job end...');
    }
 
    private function test(){
        echo "test\r\n";
    }
}
 
2.配置command.php文件,位置在application/command.php
<?php
return ['app\admin\command\Test'];
1
2
3.运行test命令
打开命令行,运行php think Test命令test命令execute方法中运行的方法就会运行
 
4.在应用根目录新建bat文件
task.bat文件
 
D:
cd D:\xampp\htdocs\autobet
php think Test
1
2
3
5.将bat文件添加到服务器计划任务
这个根据window和Linux系统不一样,定时任务设置方法也不同,可以自行百度,我用的是本地的windows服务,详情看百度经验:Windows计划任务设置,定时执行指定脚本
 
ps:这里设置间隔时常,可以是1分钟到31天,可选项最低是5分钟,可以手写!
 
 
网络编程 | 前端制作 | 数据库 | CMS教程 | 脚本编程 | 微信开发 | 服务器 | 小程序 | 框架 | 手机APP |

凡本网站转载的文章、图片等资料的版权归版权所有人所有,因无法和版权所有者一一联系,如果本网站选取的文/图威胁到您的权益,请您及时和本网站联系。 我们会在第一时间内采取措施,避免给双方造 成不必要的损失。
© 2015-2018 微学网 版权所有,并保留所有权利。 备案号:粤ICP备09051474号-1

电脑版 | 移动版