laravel 中使用定時任務


Laravel5.3 Artisan Console 文檔地址

http://laravelacademy.org/post/6228.html

1、在服務器上查看定時任務有哪些
crontab -e

使用該命令 打開vim 查看添加的任務有哪些

一行代表一個定時任務

2、將對應需要定時的laravel項目 添加到vim中(下面是dxjk的任務示例)

其中/to/artisan 需要更換為dxjk項目的絕對路徑

* * * * * php /var/www/html/dxjk/artisan schedule:run >> /dev/null 2>&1

3、在dxjk項目中,更改app/Console/Kernel.php的schedule方法,執行邏輯定時任務(測試,是每分鍾將test表id=1的time字段更改寫入當前時間戳)

protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
$time = time();
\DB::table('dxjk_test')->where('id',1)->update(['time' => $time]);
})->everyMinute();
}

4、提交代碼,查看結果!(正常)

 注:

artisan是laravel項目的命令行工具,通過php artisan + cmd可以執行項目里面定義的php任務,而schedule是laravel自帶的一個命令,執行php artisan schedule,laravel會遍歷你定義好的定時任務,並根據系統當前時間判斷某個任務是否需要執行。crontab 是linux系統的定時任務工具,可以設置執行周期,和需要執行的shell命令,借助crontab每分鍾執行一次artisan的schedule命令,讓laravel檢查是否有任務到期。(上面配置在crontab -e 中的內容,就是 借助crontab 每分鍾執行一次artisan的schedule命令)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM