美文网首页
laravel中的任务调度

laravel中的任务调度

作者: 阳光的小mi | 来源:发表于2019-03-28 18:05 被阅读0次

    前言

    laravel提供了command脚本,可以直接用artisan执行,也可以做定时任务。下面记录一下开发中常用的操作,基础知识请自行翻阅文档

    1.介绍脚本

    1.1创建脚本文件

    artisan 提供了直接创建任务的命令,执行完成后,会看到脚本文件已经创建好了, 目录为:/app/Console/Commands/job_name.php。

    #创建脚本
    php artisan make:command job_name
    

    1.2脚本内容结构介绍

    创建好脚本后,可看到如下内容:

    protected $signature = 'command:name';
    protected $description = 'Command description';
    public function __construct(){}
    public function handle(){}
    

    其中,$signature是执行脚本的命令,$description是对这个脚本的描述,脚本的逻辑在handle()方法中。

    测试脚本内容

    1.3 执行脚本

    支持多种调度方式,可定时执行,laravel文档中有介绍,这里介绍一下直接用artisan命令调用。这里需要注意,不管是用哪种方式调用,都需要先将脚本添加到/app/Console/Kernel.php 中的 $commands数组中进行注册。


    注册脚本

    用artisan命令行执行脚本:

    php artisan test:job_test (这里直接填脚本定义的$signature的值就好了)
    

    2.脚本中常用的一些方法

    2.1调用脚本时传递参数

    直接在$signature中定义参数即可。具体操作如下:

    • 必填参数:用{}指定;
      -- 设置参数:
        protected $signature = 'command:name {param_name}';
    

    -- 调用

     $this->argument('param_name');
    
    • 选填参数:用{--}指定
      -- 设置参数
    protected $signature = 'command:name {--option_name=}' #option_name默认为空;
    

    -- 调用

     $this->option('option_name');
    
    调用脚本并传递参数

    2.2 在脚本中调用别的脚本

    有时候我们想要在项目平稳上线后做一些数据统计工作,比如写一个统计日活脚本去统计每日活跃用户,每天凌晨执行统计昨日的日活跃,这样之后每天的日活跃我们都可以获取到。那,此功能开发之前的日活跃怎么办呢?好办,再写一个填充旧数据日活脚本,手动统计旧数据。在填充旧数据日活脚本中传递一个必填参数,指定开始时间,结束时间默认为昨天;再修改统计日活脚本,增加一个选项--option,可指定统计日期,默认昨天;在填充旧数据日活脚本中循环开始时间至结束时间,依次调用统计日活脚本,最后只需用artisan手动调用依次填充旧数据日活脚本即可完成填充旧数据的工作。

     Artisan::call('脚本执行命令',[脚本所需参数]);
    

    相关文章

      网友评论

          本文标题:laravel中的任务调度

          本文链接:https://www.haomeiwen.com/subject/cihcbqtx.html