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 和 COM
Oct 09 PHP
PHP 批量删除 sql语句
Jun 05 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 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
PHP脚本的10个技巧(1)
2006/10/09 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
详谈python http长连接客户端
2017/06/12 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
如何教少儿学习Python编程
2020/07/10 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
法人代表任命书范本
2014/06/05 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
寒山寺导游词
2015/02/03 职场文书