天天看點

Laravel建立定時任務

        建立一個任務,建立成功後會在App/Console/Commands中生成一個以Test命名的檔案,我們可以在這裡面寫我們的任務指令。

php artisan make:command Test

        運作這個定時任務 run 是運作一次,我們可以用來測試是否成功,work是一直運作,每分鐘執行一次,當執行到我們設定的時間就會自動執行。

php artisan schedule:run
php artisan schedule:work
/**
     * The name and signature of the console command.
     *
     * @var string
     * 給我們的任務取一個名稱
     */
    protected $signature = 'Test';
 
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';
 
    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }
 
    /**
     * Execute the console command.
     *
     * @return int
     * 在這裡進行我們的邏輯編寫
     */
    public function handle()
    {
        return 0;
    }
           

        我們在将邏輯完成之後,就需要在App/Console中的Kernel.php檔案當中去設定我們的定時任務的時間段。

/**
     * Define the application's command schedule.
     *
     * @param \Illuminate\Console\Scheduling\Schedule $schedule
     * @return void
     * @name 為我們定義的任務名稱 隻需要操作這裡就OK
     */
    protected function schedule(Schedule $schedule)
    {
        //我們可以根據需求去調整我們的定時任務的運作時間,我會在最下面将時間列出來
        $schedule->command('name')->everyThirtyMinutes();
    }
 
    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__ . '/Commands');
 
        require base_path('routes/console.php');
    }
           

         成功執行個體

Laravel建立定時任務
Laravel建立定時任務
Laravel建立定時任務

 定時任務的時間設定

        這是定時任務的時間排程設定。

方法                           描述

->cron('* * * * *');    自定義 Cron 計劃執行任務

->everyMinute();    每分鐘執行一次任務

->everyTwoMinutes();    每兩分鐘執行一次任務

->everyThreeMinutes();    每三分鐘執行一次任務

->everyFourMinutes();    每四分鐘執行一次任務

->everyFiveMinutes();    每五分鐘執行一次任務

->everyTenMinutes();    每十分鐘執行一次任務

->everyFifteenMinutes();    每十五分鐘執行一次任務

->everyThirtyMinutes();    每三十分鐘執行一次任務

->hourly();    每小時執行一次任務

->hourlyAt(17);    每小時第 17 分鐘執行一次任務

->everyTwoHours();    每兩小時執行一次任務

->everyThreeHours();    每三小時執行一次任務

->everyFourHours();    每四小時執行一次任務

->everySixHours();    每六小時執行一次任務

->daily();    每天 0 點執行一次任務

->dailyAt('13:00');    每天 13:00 執行一次任務

->twiceDaily(1, 13);    每天 01:00 和 13:00 各執行一次任務

->weekly();    每周日 00:00 執行一次任務

->weeklyOn(1, '8:00');    每周一的 08:00 執行一次任務

->monthly();    每月第一天 00:00 執行一次任務

->monthlyOn(4, '15:00');    每月 4 号的 15:00 執行一次任務

->lastDayOfMonth('15:00');    每月最後一天 15:00 執行一次任務

->quarterly();    每季度第一天 00:00 執行一次任務

->yearly();    每年第一天 00:00 執行一次任務

->timezone('America/New_York');    設定時區

        下面是定時任務的一些限制。

方法                    描述

->weekdays();    限制任務在工作日執行

->weekends();    限制任務在周末執行

->sundays();    限制任務在周日執行

->mondays();    限制任務在周一執行

->tuesdays();    限制任務在周二執行

->wednesdays();    限制任務在周三執行

->thursdays();    限制任務在周四執行

->fridays();    限制任務在周五執行

->saturdays();    限制任務在周六執行

->days(array|mixed);    限制任務在每周的指定日期執行

->between($start, $end);    限制任務在 $start 和 $end 區間執行

->when(Closure);    限制任務在閉包傳回為真時執行

->environments($env);    限制任務在特定環境中執行

總結

1.先建立一個定時任務,并且命名。

2.在建立的定時任務中書寫我們的邏輯資訊

3.在Kernel檔案中設定定時任務的運作時間

4.運作定時任務,進行測試

我們能夠在laravel8中文文檔中的任務排程去找到相關的資訊 Laravel8 任務排程