zoukankan      html  css  js  c++  java
  • Laravel实现定时任务的示例代码

    https://mp.weixin.qq.com/s/VUEqjwcHRb0ovhP0wup36A

    最近在玩Laravel实现定时任务,这个是示例代码,可以参照这个实例。有需要的可以看看

    定时任务是后端开发过程中一项十分常见的需求,常出现在数据统计、垃圾信息清理等场景中。Laravel 提供了一整套的定时任务工具,让我们只需要专注地完成逻辑,剩下的基础工作将由它来承担。

    基本用法

    生成命令

    php artisan make:command AreYouOK

    5.2 及之前的版本,此命令为 `php artisan make:console xxx`

    编辑命令

    编辑 `app/Console/Commands/AreYouOK.php` 文件,修改如下几处:

    ... ...
    protected $signature = 'areyou:ok'; // 命令名称
    protected $description = '雷军,科技圈最会唱歌的男人'; // 命令描述,没什么用
    
    public function __construct()
    {
      parent::__construct();
      // 初始化代码写到这里,也没什么用
    }
    public function handle()
    {
      // 功能代码写到这里
    }

    注册命令

    编辑 `app/Console/Kernel.php` 文件,将新生成的类进行注册:

    protected $commands = [
      \App\Console\Commands\AreYouOK::class,
    ];
    
     

    编写调用逻辑:app/Console/Kernel.php` 文件

    protected function schedule(Schedule $schedule)
    {
      $schedule->command('areyou:ok')
           ->timezone('Asia/Shanghai')
           ->everyMinute();
    }

    上面的逻辑是每分钟调用一次。Laravel 提供了从一分钟到一年的各种长度的时间函数,直接调用即可。

    把这个 Laravel 项目注册到系统的 cron 里

    编辑 `/etc/crontab` 文件,加入如下代码:

    * * * * * root /usr/bin/php /var/www/xxxlaravel/artisan schedule:run >> /dev/null 2>&1

    上面一行中的 `/var/www/xxxlaravel` 需要改为实际的路径。

    fire

    重启 cron 激活此功能:

    systemctl restart crond.service

    搞定!

  • 相关阅读:
    JavaWeb学习篇之----自定义标签&&JSTL标签库详解
    JavaWeb学习篇之----EL表达式详解
    JavaWeb学习篇之----Jsp详解
    JavaWeb学习篇之----Servlet过滤器Filter和监听器
    JavaWeb学习篇之----Session&&Cookie
    JavaWeb学习篇之----容器Request详解
    JavaWeb学习篇之----浏览器缓存问题详解
    JavaWeb学习篇之----容器Response详解
    JavaWeb学习篇之----HTTP协议详解
    factory工厂模式之抽象工厂AbstractFactory
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15454181.html
Copyright © 2011-2022 走看看