首頁 >php框架 >Laravel >詳解如何使用laravel的任務排程(定時執行任務)

詳解如何使用laravel的任務排程(定時執行任務)

藏色散人
藏色散人轉載
2021-01-05 16:43:222587瀏覽

以下由Laravel教學專欄為大家介紹使用laravel的任務排程(定時執行任務),希望對需要的朋友有幫助!

詳解如何使用laravel的任務排程(定時執行任務)

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編輯文件,會出現不執行任務的問題。

使用vim教學連結:http://www.cnblogs.com/zzdylan/p/5941706.html

在命令列輸入

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的任務排程(定時執行任務)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除