建立一個任務,建立成功後會在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');
}
成功執行個體
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwYDMzQzM5cDZkdDO5ADN5IWYkRDOhlTM4QGNwYWN3YzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
定時任務的時間設定
這是定時任務的時間排程設定。
方法 描述
->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 任務排程