加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Laravel框架定时任务2种实现方式示例

发布时间:2020-12-14 19:59:20 所属栏目:大数据 来源:网络整理
导读:本篇章节讲解Laravel框架定时任务2种实现方式。供大家参考研究具体如下: 第一种 1、生成一个commands文件 > php artisan make:command test 2、打开文件进行修改 laravelAppConsoleCommandstest.php namespace AppConsoleCommands; use Illuminat

本篇章节讲解Laravel框架定时任务2种实现方式。分享给大家供大家参考,具体如下:

第一种

1、生成一个commands文件

> php artisan make:command test

2、打开文件进行修改

laravelAppConsoleCommandstest.php

namespace AppConsoleCommands;

use IlluminateConsoleCommand;

use IlluminateSupportFacadesLog;

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 查看

3、然后修改: laravelappConsoleKernel.php 文件

namespace AppConsole;

use IlluminateConsoleSchedulingSchedule;

use IlluminateFoundationConsoleKernel as ConsoleKernel;

class Kernel extends ConsoleKernel

{

protected $commands = [

// 参考手册 新加

AppConsoleCommandstest::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、打开日志文件查看

laravelstoragelogslaravel.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相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读