laravel框架任務排程(定時執行任務)

吳夢涵發表於2019-05-11

 

laravel 任務排程(定時執行任務)


任務排程寫在  app/Console/Kernel.PHP 檔案 schedule 中,裡面預設有一個例子。在 schedule 方法裡放入自己的執行的程式碼。比如

這個是每一分鐘在資料庫裡插入一條資料。

[html] 

  1. <?php  

  2.   

  3. namespace AppConsole;  

  4.   

  5. use IlluminateConsoleSchedulingSchedule;  

  6. use IlluminateFoundationConsoleKernel as ConsoleKernel;  

  7. use IlluminateSupportFacadesDB;  

  8.   

  9. class Kernel extends ConsoleKernel  

  10. {  

  11.     /**  

  12.      * The Artisan commands provided by your application.  

  13.      *  

  14.      * @var array  

  15.      */  

  16.     protected $commands = [  

  17.         AppConsoleCommandsInspire::class,  

  18.     ];  

  19.   

  20.     /**  

  21.      * Define the application`s command schedule.  

  22.      *  

  23.      * @param  IlluminateConsoleSchedulingSchedule  $schedule  

  24.      * @return void  

  25.      */  

  26.     protected function schedule(Schedule $schedule)  

  27.     {  

  28.   

  29.         $schedule->exec(  

  30.             $schedule->call(function () {  

  31.                 DB::table(`ceshi`)->insert([`contents`=>`新的資料`]);  

  32.             })->everyMinute()  

  33.         )->daily();  

  34.     }  

  35. }  

寫完了,還需要定時執行怎麼辦?

藉助Liunx的crontab  來定時執行

執行,crontab -e 

此時顯示

出現這樣的介面,就是進入crontab裡面了,接著

在最下面寫入 

* * * * * php 專案的路徑/artisan schedule:run >> /dev/null 2>&1
按下 Ctrl + X 儲存退出
這樣就OK ,如果不執行,請下檢查程式碼,以及專案的路徑是否正確。


相關文章