laravel 任務調度-即定時任務使用


官方:https://laravelacademy.org/post/8484.html

1、說明

  • linux下 cron 定時任務是一個非常有用的工具,通過cron 使腳本能使計划任務定期地在系統后台自動運行。

  • 常規每個定時任務需要到服務器中建1個cron條目,laravel可通過只建1個cron條目,完成多個定時任務定義,不用每次到服務器中修改,代碼中修改即可

2、開啟調度

linux下 crontab -e 將該cron條目復制即可

啟動cron任務: sudo service cron restart/start/stop

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
// /path-to-your-project是項目路徑,如:/home/vagrant/code/laravel

3、定義調度

laravel - app/Console/Kernel.php 下的 schedule 方法中定義所有調度任務

protected function schedule(Schedule $schedule)
{
    // $schedule->command('inspire')
    //          ->hourly();
    $schedule->call(function () { // 每分鍾運行添加1條記錄
        $time = time();
        DB::table('information')->insert([
            [
                'id' => null,
                'title' => str_random(40),
                'content' => str_random(255),
                'created_at' => $time,
                'updated_at' => $time,
            ]
        ]);
    })->everyMinute();
}

4、調度方法

方法 描述
->cron('* * * * *'); 在自定義Cron調度上運行任務
->everyMinute(); 每分鍾運行一次任務
->everyFiveMinutes(); 每五分鍾運行一次任務
->everyTenMinutes(); 每十分鍾運行一次任務
->everyFifteenMinutes(); 每十五分鍾運行一次任務
->everyThirtyMinutes(); 每三十分鍾運行一次任務
->hourly(); 每小時運行一次任務
->hourlyAt(17); 每小時第十七分鍾運行一次任務
->daily(); 每天凌晨零點運行任務
->dailyAt('13:00'); 每天13:00運行任務
->twiceDaily(1, 13); 每天1:00 & 13:00運行任務
->weekly(); 每周運行一次任務
->monthly(); 每月運行一次任務
->monthlyOn(4, '15:00'); 每月4號15:00運行一次任務
->quarterly(); 每個季度運行一次
->yearly(); 每年運行一次
->timezone('America/New_York'); 設置時區

方法 描述
->weekdays(); 只在工作日運行任務
->sundays(); 每個星期天運行任務
->mondays(); 每個星期一運行任務
->tuesdays(); 每個星期二運行任務
->wednesdays(); 每個星期三運行任務
->thursdays(); 每個星期四運行任務
->fridays(); 每個星期五運行任務
->saturdays(); 每個星期六運行任務
->between($start, $end); 基於特定時間段運行任務
->when(Closure); 基於特定測試運行任務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM