composer create-project topthink/think=5.0.* tp5 --prefer-dist
(2).安装定时任务composer包EasyTask
composer require easy-task/easy-task
(3).创建命令行处理类文件application/common/command/Task.php
<?php
namespace app\common\command;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\Output;
class Task extends Command
{
protected function configure()
{
//设置名称为task
$this->setName('task')
//增加一个命令参数
->addArgument('action', Argument::OPTIONAL, "action");
}
protected function execute(Input $input, Output $output)
{
//获取输入参数
$action = trim($input->getArgument('action'));
// 初始化EasyTask
$task = new \EasyTask\Task();
// 设置项目名称
$task->setPrefix('Think');
// 设置后台运行
$task->setDaemon(true);
// 设置日志保存目录
$task->setRunTimePath('./runtime/');
// 添加闭包任务,开2个进程5s执行1次访问网址
$task->addFunc(function () {
@file_get_contents('http://xingxinghan.cn/?id=6');
}, 'Curl_1', 5, 2);
// 添加执行tp默认控制器的方法,开1个进程10s执行1次访问网址
$task->addClass('\app\index\controller\Index', 'index', 'Curl_2', 10, 1);
// 根据命令执行
if ($action == 'start')
{
$task->start();
}
if ($action == 'status')
{
$task->status();
}
if ($action == 'stop')
{
$task->stop();
}
}
}
(4).将上面创建的Task.php在配置文件application/command.php中配置一下
return [
'app\common\command\Task',
];
(5).修改入口文件think文件(windows才需要),在第一行增加以下代码
// 重置工作目录(only_win_system)
chdir(dirname(__FILE__));
(6).执行命令(windows请使用cmd):
php think task start 启动命令
php think task status 查询命令
php think task stop 关闭命令
(7).整合的项目文件分享下载400kb
链接:https://pan.baidu.com/s/1LbU2fy_g2ivBqGrT2XL0aQ
提取码:20sd
提示:后台执行失败可修改为前台启动查看问题或者查看日志文件,有问题可以在qq群反馈bug
最佳答案