<aside> <img src="/icons/brightness-high_yellow.svg" alt="/icons/brightness-high_yellow.svg" width="40px" /> 為了滿足每日Counter歸零,可以設定午夜時分將 Redis 清空。至於統計量,可以設定每個小時或其他間隔時間計算,以免浪費系統效能。

</aside>

  1. 定義統計量任務

    建立一個任務,用於計算統計量並將結果保存在數據庫中。

    php artisan make:job CalculateStatistics
    
  2. 定義清零 Redis 任務

    建立一個任務,用於清空 Redis 中的計數器。

    php artisan make:job ClearRedisCounter
    
  3. 設置 Task Scheduling

    打開 app/Console/Kernel.php 文件,設置 Task Scheduling。在 schedule 方法中定義任務計劃:

    protected function schedule(Schedule $schedule)
    {
        // 每小時統計量任務
        $schedule->job(new CalculateStatistics())->hourly();
    
        // 午夜1:00清零 Redis 任務
        $schedule->job(new ClearRedisCounter())->dailyAt('1:00');
    }
    
  4. 使用 crontab 執行