Hyperf定义定时任务

1.安装

composer require hyperf/crontab

2.启动任务调度器进程

在使用定时任务组件之前,需要先在 config/autoload/processes.php 内注册一下 Hyperf\Crontab\Process\CrontabDispatcherProcess 自定义进程,如下:

<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */
return [
    Hyperf\Crontab\Process\CrontabDispatcherProcess::class,
];

同时,您还需要将 config/autoload/crontab.php 内的 enable 配置设置为 true,表示开启定时任务功能,如配置文件不存在可自行创建,配置如下:

<?php

return [
    // 是否开启定时任务
    'enable' => true,
];

3.定义定时任务

<?php

namespace App\Task;


use App\Model\mapper\UserModelInterface;
use Hyperf\Contract\StdoutLoggerInterface;
use Hyperf\Crontab\Annotation\Crontab;
use Hyperf\Logger\LoggerFactory;
use Psr\Log\LoggerInterface;


/**
 * @Crontab(name="FooTask自定义定时任务", rule="*\/10 * * * * *", callback="foo", memo="这是一个示例的定时任务")
 */
class FooTask
{
    /**
     * @var StdoutLoggerInterface
     */
    protected $logger;
    private $userModel;

    public function __construct(LoggerFactory $loggerFactory,UserModelInterface $userModel)
    {
        $this->logger = $loggerFactory->get('log', 'default');
        $this->userModel = $userModel;
    }


    public function execute()
    {
        $res =  $this->userModel->addUser([
            "dept_id" => 103,
            "user_name" => "周玮",
            "nick_name" => "周玮",
            "user_type" => "00",
            "email" => "",
            "phonenumber" => "",
            "sex" => "0",
            "avatar" => "",
            "password" => "6151565641546",
        ]);
        $this->logger->info(date('Y-m-d H:i:s', time()),[
            "dept_id" => 103,
            "user_name" => "周玮",
            "nick_name" => "周玮",
            "user_type" => "00",
            "email" => "",
            "phonenumber" => "",
            "sex" => "0",
            "avatar" => "",
            "password" => "6151565641546",
        ]);
        var_dump("12224545646454564");
    }


    public function foo()
    {
        $this->logger->info("foo定时任务",[
            "name" => "小王",
            "phone" => "15507489658",
            "sex" => "1",
        ]);
    }

}

4.启动,能在后台看到注册成功了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值