Laravel計劃任務schedule不執行怎么辦?

Laravel計劃任務schedule不執行怎么辦?

laravel 計劃任務 schedule 運行失敗的常見問題及解決方法

在使用 Laravel 的計劃任務 schedule 時,開發者經常會遇到任務看似已啟動,但實際代碼未執行的情況。本文將分析一個案例,并提供有效的解決方案。

用戶反饋:在服務器上執行 php artisan schedule:run 命令后,系統顯示任務已啟動:

running scheduled command: 'php' 'artisan' handbook:apple-expire-verify > '/dev/NULL' 2>&1

然而,handbook:apple-expire-verify 命令對應的 handle 方法并未執行。 這是因為 /dev/null 重定向導致潛在的錯誤信息被隱藏。

解決方案:

直接使用 Laravel 的 schedule 方法調度命令,避免通過 shell 命令間接調用 artisan 命令。

錯誤代碼 (app/console/Kernel.php):

$schedule->command('php artisan handbook:apple-expire-verify')->everyMinute();

更正后的代碼 (app/Console/Kernel.php):

$schedule->command('handbook:apple-expire-verify')->everyMinute();

通過此修改,Laravel 調度器能夠正確識別并執行 handbook:apple-expire-verify 命令。 請確保該命令已正確注冊在 Laravel 的命令列表中。 此外,建議移除 /dev/null 重定向,以便查看命令執行過程中的日志信息,方便問題排查。 這有助于更清晰地了解任務執行的細節,并快速定位潛在的錯誤。

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享