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日历[测试通过]
Mar 27 PHP
PHP中英混合字符串截取函数代码
Jul 17 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 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 无限极分类
2008/03/27 PHP
Smarty Foreach 使用说明
2010/03/23 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
yii用户注册表单验证实例
2015/12/26 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
HTML5的语法变化介绍
2013/08/13 HTML / CSS
数控技术学生的自我评价
2014/02/15 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
小学评语大全
2014/04/22 职场文书
村委会换届选举方案
2014/05/03 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL