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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
PHP日期处理函数 整型日期格式
Jan 12 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
Laravel框架表单验证详解
Sep 04 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
PHP中foreach()用法汇总
Jul 02 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Python解析json文件相关知识学习
2016/03/01 Python
python表格存取的方法
2018/03/07 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python字符串查找函数的用法详解
2019/07/08 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
Python FFT合成波形的实例
2019/12/04 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
利用指针变量实现队列的入队操作
2012/04/07 面试题
机工车间主任岗位职责
2014/03/05 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
海洋天堂观后感
2015/06/05 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
python使用pymysql模块操作MySQL
2021/06/16 Python
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers