Laravel应用 -- 脚本任务

大多数项目在业务发展过程中,都需要修复历史数据和定时任务来完成一些业务逻辑,这部分通常都需要通过脚本来完成,一般的框架爱也都提供这部分的功能,学习并使用是工作中的基本要求。

基本流程

commands模式运行脚本定时任务基本流程:

  1. app/Console/Commands/ 目录下创建脚本任务文件
  2. app/Console/Kernel.php $commands数组中添加新建的脚本类
  3. app/Console/Kernel.php schedule()方法中添加脚本定时任务命令

具体实现

创建脚本文件

app/Console/Commands/QingShan/commandQingshan.php

<?php
namespace App\Console\Commands\QingShan;

use Illuminate\Console\Command;

class commandQingshan extends Command
{
    // 自定义脚本命令签名
    protected $signature = 'qingshan:commandQingshan';
    
    // 自定义脚本命令描述
    protected $description = '这里是脚本命令的描述qingshan';
    
    // 创建一个新的命令实例
    public function __construct()
    {
        parent::__construct();
    }

    //具体执行的业务内容
    public function handle()
    {
    }
}

注册脚本

app/Console/Kernel.php $commands数组中追加新建的脚本类

protected $commands = [
    'BasicIT\LumenVendorPublish\VendorPublishCommand',
    Commands\QingShan\commandQingshan::class
]

执行脚本

查看脚本命令调用方式

  1. 在项目目录下执行下面的命令,查看当前可以执行的命令
> php artisan list

Available commands下会有一列:

qingshan
    qingshan:commandQingshan     这里是脚本命令的描述qingshan
  1. 执行脚本命令
> php artisan qingshan:commandQingshan

添加到定时任务

app/Console/Kernel.php schedule()方法中添加脚本定时任务命令

// 设置commandQingshan脚本为每天15:00自动执行
protected function schedule(Schedule $schedule)
{
    $schedule->command('qingshan:commandQingshan')->dailyAt('15:00');
    
}

参考资料:

Larave5.8中文文档--Artisan 命令行

posted @ 2019-09-23 10:08  程序小工  阅读(1590)  评论(0编辑  收藏  举报