Laravel框架定时任务2种实现方式示例


Posted in PHP onDecember 08, 2018

本文实例讲述了Laravel框架定时任务2种实现方式。分享给大家供大家参考,具体如下:

第一种

1、生成一个commands文件

> php artisan make:command test

2、打开文件进行修改

laravel\App\Console\Commands\test.php

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class test extends Command
{
 /**
  * The name and signature of the console command.
  *
  * @var string
  */
 protected $signature = 'test:insert'; // php artisan list 中将会生成 "php artisan test:insert " 指令
 /**
  * The console command description.
  *
  * @var string
  */
 protected $description = 'insert Test table some test data'; // 对上面指令的描述
 /**
  * Create a new command instance.
  *
  * @return void
  */
 public function __construct()
 {
  parent::__construct();
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
  // 编写你要的定时任务执行的代码!
  # eg
 Log::info('test');
 }
}

> php artisan list 查看

Laravel框架定时任务2种实现方式示例

3、然后修改: laravel\app\Console\Kernel.php 文件

<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
 protected $commands = [
  // 参考手册 新加
  \App\Console\Commands\test::class,
 ];
 // 定义应用的命令调度
 protected function schedule(Schedule $schedule)
 {
   // 新加 每分钟执行一次
  $schedule->command('test:insert')->everyMinute();
 }
 protected function commands()
 {
  $this->load(__DIR__.'/Commands');
  require base_path('routes/console.php');
 }
}

4、启用计划任务:在服务器中加入到计划任务 crontab -e

注意这里的 path 是你的laravel项目根目录的 绝对路径!, 然后加上后面的 artisan 到结尾的字符串

* * * * * php /path/artisan schedule:run >> /dev/null 2>&1
* * * * * php /code/src/laravel/artisan schedule:run >> /dev/null 2>&1

5、打开日志文件查看

laravel\storage\logs\laravel.log

第二种

使用 shell脚本执行

因为 php artisan list 可以查看到 执行指令 test:insert

所以可以考虑用 .sh 脚本执行,还是类似上面 crontab -e编写

1、先编写 .sh 脚本 laravel/test.sh 放在项目某个位置,文件内写入

php artisan test:insert

上面指令在命令行手动每执行一次就可以触发一次编写的程序,相当于给 laravel.log 写入一次 test

2、使用 crontab -e 编写 执行 第一步写的 test.sh 脚本

* * * * * laravel/test.sh

以上两种均可看到 laravel.log 日志

Laravel框架定时任务2种实现方式示例

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
php flv视频时间获取函数
Jun 29 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
php常用表单验证类用法实例
Jun 18 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
php和vue配合使用技巧和方法
May 09 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 #PHP
thinkPHP框架实现的简单计算器示例
Dec 07 #PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
Dec 07 #PHP
laravel5使用freetds连接sql server的方法
Dec 07 #PHP
php多进程模拟并发事务产生的问题小结
Dec 07 #PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 #PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 #PHP
You might like
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
python字符串替换示例
2014/04/24 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
2015年测量员工作总结
2015/05/23 职场文书
观后感格式
2015/06/19 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL