在 Laravel 框架中,任務(wù)調(diào)度是通過內(nèi)置的 Artisan 命令 schedule:run
來實(shí)現(xiàn)的。這個命令會讀取你在 app/Console/Kernel.php
文件中定義的任務(wù)調(diào)度,并根據(jù)設(shè)定的時間和頻率執(zhí)行相應(yīng)的任務(wù)。
要使用 Laravel 的任務(wù)調(diào)度功能,請按照以下步驟操作:
打開 app/Console/Kernel.php
文件。
在 schedule
方法中,定義你的任務(wù)調(diào)度。例如,要每分鐘運(yùn)行一個命令,你可以這樣做:
protected function schedule(Schedule $schedule)
{
$schedule->command('your:command')->everyMinute();
}
確保你的命令已經(jīng)在 app/Console/Commands
目錄下創(chuàng)建好了。如果沒有,請使用 php artisan make:command YourCommandName
命令創(chuàng)建一個新的命令。
在你的服務(wù)器上配置一個 cron 任務(wù),每分鐘運(yùn)行 schedule:run
命令。這可以通過在服務(wù)器的 crontab 文件中添加以下行來實(shí)現(xiàn):
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
請確保將 /path-to-your-project
替換為你的 Laravel 項目的實(shí)際路徑。
schedule
方法中定義的任務(wù)。注意:在本地開發(fā)環(huán)境中,你可以使用 php artisan schedule:work
命令來模擬 cron 任務(wù)的運(yùn)行。這將啟動一個后臺進(jìn)程,每分鐘運(yùn)行一次 schedule:run
命令。但請注意,這不是在生產(chǎn)環(huán)境中推薦的做法,因?yàn)樗赡軙?dǎo)致性能問題。在生產(chǎn)環(huán)境中,始終使用真正的 cron 任務(wù)來運(yùn)行 schedule:run
命令。