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

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

一、說明

  • linux下 cron 定時任務是一個很是有用的工具,經過cron 使腳本能使計劃任務按期地在系統後臺自動運行。html

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

二、開啓調度

linux下 crontab -e 將該cron條目複製便可laravel

啓動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

三、定義調度

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

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();
}

四、調度方法

方法 描述
->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); 基於特定測試運行任務
相關文章
相關標籤/搜索