rm -rf storage/framework/ cache/*
本質是因為意外情況導致上一個正在執行中的任務沒有正常結束,更它的mutex標記檔案卻還在,使得Laravel框架的php artisan schedule: run
指令任務該任務還在執行中,所以為了withoutOverlapping,就跳過執行了,在這種情況下,手動將mutex標記刪掉就能恢復正常。
mutex標記是受Laravel框架的vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheMutex.php
檔案控制的,用的是.env中指定的CACHE_DRIVER(對應config/cache.php
中指定的設定),一般預設是file類型,對應到storage/framework/cache
目錄,所以把該目錄的cache都清除就行了.