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.ini中文版(2)
Oct 09 PHP
用PHP制作静态网站的模板框架(二)
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
php页面防重复提交方法总结
Nov 25 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
php函数与传递参数实例分析
Nov 15 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
jquery select下拉框操作的一些说明
2010/04/02 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
javascript基本语法
2016/05/31 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
Python中的hypot()方法使用简介
2015/05/18 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
python list转置和前后反转的例子
2019/08/26 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
机电一体化专业推荐信
2013/12/03 职场文书
网络程序员自荐信
2014/01/25 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
企业授权委托书范本
2014/09/22 职场文书
优秀班集体申报材料
2014/12/25 职场文书
Java中的随机数Random
2022/03/17 Java/Android
python运行脚本文件的三种方法实例
2022/06/25 Python