thinkphp5定时任务,tp5定时任务,thinkphp定时任务,php定时任务,php定时器

本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask

(1).安装tp5.0或者5.1

composer create-project topthink/think=5.0.* tp5  --prefer-dist

(2).安装定时任务composer包

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")
            ->addArgument('force', Argument::OPTIONAL, "force");
    }

    protected function execute(Input $input, Output $output)
    {
        //获取输入参数
        $action = trim($input->getArgument('action'));
        $force = trim($input->getArgument('force'));

        // 配置任务
        $task = new \EasyTask\Task();
        $task->setRunTimePath('./runtime/');
        $task->addFunc(function () {
            $url = 'http://gaojiufeng.cn/?id=319';
            file_get_contents($url);
        }, 'request', 10, 2);;

        // 根据命令执行
        if ($action == 'start')
        {
            $task->start();
        }
        elseif ($action == 'status')
        {
            $task->status();
        }
        elseif ($action == 'stop')
        {
            $force = ($force == 'force'); //是否强制停止
            $task->stop($force);
        }
        else
        {
            exit('Command is not exist');
        }
    }
}

(4).将上面创建的Task.php在配置文件application/command.php中配置一下

return [
    'app\common\command\Task',
];

(5).执行命令(windows请使用cmd):

php think task start  启动命令
php think task status 查询命令
php think task stop   关闭命令
php  think  task  stop  force   强制关闭命令

上面创建的定时任务是每隔10秒访问2次网站地址。

提示:后台执行失败可修改为前台启动查看问题或者查看日志文件,有问题可以在qq群反馈bug,记得用星星支持我们

访客
邮箱
网址


  •  熊猫
  • 定时任务进程总是两个,设置了一个的参数也没有用,这个是为什么呢。请大神指点,现在订单的结算都会结算两次,这个怎么破解呢。求大神指点发布于 2020-11-25 15:21:38   回复ta
    •  admin
    • 联系我或者在群里找我,随时帮你定位问题发布于 2020-11-25 20:22:37   回复ta
  •  鱼11
  • 一键加入qq群加不了,把qq群号回复在群里吧发布于 2020-08-21 17:24:00   回复ta
    •  admin
    • 群号码777241713发布于 2020-08-25 12:22:45   回复ta
  •  鱼11
  • windows下cmd启动不了啊,没有think命令;windows怎么启动?发布于 2020-08-21 17:22:55   回复ta
    •  admin
    • 在tp根目录有个think文件发布于 2020-08-25 12:23:13   回复ta
  •  admin
  • 大家有问题可以进群私信群主,帮解决文章任何问题发布于 2020-08-09 23:16:34   回复ta
  •  666995
  • 运行命令报错:\runtime\Task\Win\89067769133f6f2a8b0e086a78e41b0d.win): failed to open stream: No such file or directory发布于 2020-08-08 15:25:47   回复ta
    •  admin
    • 你是不是在没有关闭任务的时候删除运行时目录了?发布于 2020-08-09 23:14:39   回复ta
  •  jry
  • 可以建立多个 Cammand,实例化多个Task吗,会冲突吗?发布于 2020-07-24 15:28:27   回复ta
    •  admin
    • 可以多个命令行,使用$task-˃setPrefix('EasyTask');来设置不同命令行的项目名来区分即可发布于 2020-08-05 09:27:50   回复ta
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top