laravel定時任務需要用cron嗎

laravel定時任務需要用cron;laravel中想要定時執行所有的laravel任務,就需要在服務器上添加cron條目,在root文件中添加“phppath 項目路徑/artisan schedule:run…”代碼即可。

laravel定時任務需要用cron嗎

本文操作環境:linux7.3系統、Laravel5.4版、Dell G3電腦。

laravel定時任務需要用cron嗎

laravel中有一個很強大上的功能,只需要在服務器上添加一個cron條目,就可以定時執行所有的laravel任務。

現在有如下數據表:

laravel定時任務需要用cron嗎

我想讓cron表中的cron字段的值每分鐘增加1,那么我需要如下步驟:

1、在AppconsoleKernel.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

laravel定時任務需要用cron嗎

不需要重啟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視頻教程

以上就是

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