laravel定時任務需要用cron;laravel中想要定時執行所有的laravel任務,就需要在伺服器上新增cron條目,在root檔案中加入「phppath 專案路徑/artisan schedule:run... 」代碼即可。
本文操作環境:linux7.3系統、Laravel5.4版、Dell G3電腦。
laravel中有一個很強大上的功能,只需要在伺服器上新增一個cron條目,就可以定時執行所有的laravel任務。
現在有如下資料表:
我想讓cron表中的cron欄位的值每分鐘增加1,那麼我需要如下步驟:
1、在App\Console\Kernel.php中寫laravel程式碼
protected function schedule(Schedule $schedule) { $schedule->call(function () { DB::table('cron')->increment('cron'); })->everyMinute(); }
2、在服務的/var/spool/cron/root檔案中加入程式碼
注意:這裡最好使用vim編輯器編輯文件,如果使用winscp編輯文件,會出現不執行任務的問題。
在命令列輸入
crontab -e
新增以下程式碼
* * * * * /usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1
在命令列輸入
crontab -u root -l
不需要重啟cron服務,因為系統每分鐘都會讀取一遍/var/spool/cron目錄下的檔案。
如果發現按照如下配置還是不能執行的話,可以用以下方法排除問題:
看一下命令有沒有使用絕對路徑,例如這裡使用/usr/local/php/bin/ php而不是php,使用/data/wwwroot/test/artisan而不是artisan。
如果已經使用了絕對路徑還是不執行,那就直接在命令列輸入/usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev /null 2>&1,看看有沒有執行,如果沒有執行,那就是laravel程式碼的問題,如果執行了說明是環境變數的問題,好好檢查路徑的問題。如果不知道php在什麼地方,在命令列輸入which php,就會提示你php安裝在什麼位置了。
【相關推薦:laravel影片教學】
以上是laravel定時任務需要用cron嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!