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函数
Jan 11 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
python生成excel的实例代码
2017/11/08 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Django框架表单操作实例分析
2019/11/04 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
python使用建议技巧分享(三)
2020/08/18 Python
django使用channels实现通信的示例
2020/10/19 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
大学生应聘自荐信
2013/10/11 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
交通事故私了协议书
2014/04/16 职场文书
大学生党员承诺书
2014/05/20 职场文书
十月围城观后感
2015/06/08 职场文书
医院消毒隔离制度
2015/08/05 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书