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

基本流程

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 命令行

Laravel应用 -- 脚本任务的更多相关文章

  1. Laravel Composer 脚本

    composer update --no-scripts 执行静态文件 composer dump-autoload 文件映射

  2. Laravel 5.1使用命令行模式(artisan)运行php脚本

    Laravel有内置命令调度器,可以方便的实现Cron. 任务调度定义在app/Console/Kernel.php文件的schedule方法中,该方法已经包含了一个示例.Laravel里有两种方法执 ...

  3. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  4. 在window下配置laravel开发环境

    1.由于有一点php基础,所以非常想更进一步,就选择据说在国外最流行的php框架来学习了,laravel框架,官网上介绍是为艺术而生,从知乎和一些论坛上看到,laravel学起来并不简单,首先配置问题 ...

  5. 原来 laravel 路由 参数可以为可选。。。 很灵活

    基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码代码如下: Rout ...

  6. Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

    Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel 1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首 ...

  7. Laravel项目目录结构说明

    Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...

  8. Laravel学习笔记(三)数据库 数据库迁移

    该章节内容翻译自<Database Migration using Laravel>,一切版权为原作者. 原作者:Stable Host, LLC 翻译作者:Bowen Huang 正文: ...

  9. Laravel 学习笔记 —— 神奇的服务容器 [转]

    容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存放的不是文本.数值,而是对象.对象的描述(类.接口)或 ...

随机推荐

  1. WPF之动态加载曲线

    首先说一下思路: 先创建一个控件(其实就是一个canvas),在canvas里面生成一条线,给这条线绑定一个PointCollection,在主界面中用一个定时器改变这个PointCollection ...

  2. Python爬取猫眼电影《飞驰人生》47858万条评论并对其进行数据分析

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Yura不说数据说 ,PYuraL PS:如有需要Python学习资 ...

  3. startsWith(),endsWith()判断当前字符串是否是以给定字符串开始或结尾的

    package seday01;/** * boolean startsWith(String str) * boolean endsWith(String str) * 判断当前字符串是否是以给定字 ...

  4. 上传App Store 被拒问题及解决方案总结

    最近公司比较忙,一直忙着写代码做新的应用,一连上线了几个应用,我们也是忙得焦头烂额的,都没时间做总结,今天趁APP审核期间,总结一下近期上传App Store遇到的一些问题和解决方法,以便以后查阅. ...

  5. iOS 多线程知识梳理

    #iOS多线程知识梳理 ##线程进程基础概念 ###进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 ###线程 1个进程要想执行任务,必须 ...

  6. 使用百度的webuploader进行附件上传

    相较于之前使用的上传空间的优点:支持html5,不用再安装flash插件,没有大小限制,分片以后上传,上传以后再进行合并. 前端js代码 <script type="text/java ...

  7. 模板引擎Jinja2的基本用法

    Flask提供的模板引擎为Jinja2,易于使用,功能强大.模板仅仅是文本文件,它可以生成任何基于文本的格式(HTML.XML.CSV.LaTex 等等). 它并没有特定的扩展名, .html 或 . ...

  8. [Linux] docker 方式安装和使用gitlab-ce

    gitlab就相当于我们自己内网搭建的git服务,相当于公司内的github. 拉取镜像docker pull gitlab/gitlab-ce 创建宿主机的数据目录mkdir -p /mnt/git ...

  9. 29.Java基础_接口

    接口的成员特点

  10. 21.Java基础_String类

    String类构造方法 package pack1; //推荐使用直接赋值的方式得到字符串 public class test { public static void main(String[] a ...