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生成自己的LOG文件
Oct 09 PHP
社区(php&amp;&amp;mysql)四
Oct 09 PHP
PHP操作文件方法问答
Mar 16 PHP
PHP生成HTML静态页面实例代码
Aug 31 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
php强制运行广告的方法
Dec 01 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
vue组件学习教程
2017/09/09 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
vue监听input标签的value值方法
2018/08/27 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
解析Python编程中的包结构
2015/10/25 Python
python 全局变量的import机制介绍
2017/09/07 Python
在django中,关于session的通用设置方法
2019/08/06 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
python动态规划算法实例详解
2020/11/22 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
Java里面有没有全局变量?为什么?
2015/02/06 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
秋天的图画教学反思
2014/05/01 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
重阳节主题班会
2015/08/17 职场文书