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数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
Symfony2函数用法实例分析
Mar 18 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
星际争霸兵种名称对照表
2020/03/04 星际争霸
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
浅谈node的事件机制
2017/10/09 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
pyenv命令管理多个Python版本
2017/03/26 Python
python Tkinter的图片刷新实例
2019/06/14 Python
python如何实现单链表的反转
2020/02/10 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
2014年小学元旦活动方案
2014/02/12 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
教师师德承诺书
2014/03/26 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
安全保证书格式
2015/02/28 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
社区服务理念口号
2015/12/25 职场文书
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang