• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel框架定时任务2种实现方式示例

    本文实例讲述了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 查看

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

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

    您可能感兴趣的文章:
    • Laravel实现定时任务的示例代码
    • Laravel框架实现定时发布任务的方法
    • 源码分析 Laravel 重复执行同一个队列任务的原因
    • Laravel中任务调度console使用方法小结
    • Laravel框架数据库CURD操作、连贯操作总结
    • Laravel框架表单验证详解
    • Laravel框架中扩展函数、扩展自定义类的方法
    • 跟我学Laravel之快速入门
    • Laravel框架路由配置总结、设置技巧大全
    • Laravel中使用FormRequest进行表单验证方法及问题汇总
    上一篇:PHP单例模式模拟Java Bean实现方法示例
    下一篇:PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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