美文网首页
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中的任务调度

    前言 laravel提供了command脚本,可以直接用artisan执行,也可以做定时任务。下面记录一下开发中常...

  • Laravel 任务调度问题

    换地方了 Laravel 任务调度问题

  • laravel 任务调度

    1.在代码里面写调度任务,在Console文件夹下面Kernel.php写调取任务命令 2.在Commands文件...

  • laravel 任务调度

    创建定时任务文件 编辑文件内容 修改Kernel 文件 添加定时任务

  • laravel任务调度

    crontab -e #添加代码 * * * * * /usr/bin/php7.0 /var/www/html/...

  • laravel 调度任务

    larave 一直是国内外备受欢迎的框架,功能强大、结构优雅,其中 artisan 命令 也一直备受青睐。接下来就...

  • laravel任务调度

    1.创建定时任务 编写以下cron语句: /usr/bin/php为PHP路径,/www/wwwroot/guxi...

  • 30. 配置 Cron 调度器

    Laravel 提供了便利的方式来调度 Cron 任务,通过Artisan 命令 schedule:run ,调度...

  • Laravel 任务调度 ( Console )

    在以前, 开发者需要为每一个需要调度的任务编写一个 Cron 条目, 这是很让人头疼的事. 你的任务调度不在源码控...

  • laravel之任务调度

    之前执行任务定时,都会用linux的crontab,现在框架用一条就可以帮你去执行了 增加定时 定义调度 场景:订...

网友评论

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

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