在Linux下,Laravel的任務調度是通過內置的任務調度器(Task Scheduler)來實現的。這個調度器允許你在給定的時間間隔內自動運行任務。要使用Laravel任務調度器,請按照以下步驟操作:
創建一個任務:
使用php artisan make:job命令創建一個新的任務類。例如,創建一個名為SendEmailJob的任務:
php artisan make:job SendEmailJob
這將在app/Jobs目錄下生成一個新的SendEmailJob.php文件。
編寫任務邏輯:
打開新創建的SendEmailJob.php文件,然后在handle方法中編寫你的任務邏輯。例如:
public function handle()
{
// 發送電子郵件的邏輯
}
注冊任務:
在app/Console/Kernel.php文件中的schedule方法里注冊你的任務。例如,將SendEmailJob任務添加到調度器中,使其每分鐘運行一次:
protected function schedule(Schedule $schedule)
{
$schedule->command('your:command')->everyMinute();
}
如果你需要在特定時間運行任務,可以使用call方法。例如,每天凌晨1點運行SendEmailJob任務:
$schedule->call(SendEmailJob::class)->dailyAt('1:00 am');
配置Cron作業: 要確保Laravel任務調度器在服務器上正常運行,你需要在服務器上配置一個Cron作業。打開終端,輸入以下命令:
crontab -e
在打開的編輯器中,添加以下Cron作業:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
將/path-to-your-project替換為你的Laravel項目的實際路徑。這個Cron作業將每分鐘運行一次php artisan schedule:run命令,從而觸發你在app/Console/Kernel.php文件中定義的任務調度。
保存并退出編輯器?,F在,你的Laravel任務調度器已經在Linux服務器上配置好了。根據你在app/Console/Kernel.php文件中設置的時間間隔,任務將自動運行。
注意:確保你的服務器上的PHP CLI版本與Laravel項目所需的版本相匹配。你可以使用php -v命令查看當前PHP版本。如有需要,請升級PHP版本。