laravel 設置定時任務(任務調度)


創建定時任務

crontab -e

#添加代碼
* * * * * /usr/bin/php7.0 /var/www/html/laravel/artisan schedule:run >> /dev/null 2>&1

注意:/usr/bin/php7.0為你的php位置 ,* * * * *分別代表 分 時 日 月 周 (定時任務的時間) /var/www/html/laravel/為你的項目位置

 

 

查看定時任務

crontab -l

 

定義調度

在App\Console\Commands下創建Test.php

<?php namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Foundation\Inspiring;
use Log;

class Test extends Command {

    protected $name = 'test';//命令名稱

    protected $description = '測試'; // 命令描述,沒什么用

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        log::info('test');
            // 功能代碼寫到這里
    }

}

 

編輯 app/Console/Kernel.php 文件,將新生成的類進行注冊:

<?php namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel {

    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        \App\Console\Commands\Test::class,
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('test')//Test.php中的name
                 ->everyFiveMinutes();//每五分鍾執行一次
    }

}

 

PS:如果有多個定時任務,只需要參照test.php再次生成一個,Kernel.php中的$commands數組中再添加新加的類,schedule中$schedule->command('新name')->everyFiveMinutes();即可

常用:

->cron('* * * * *');    在自定義Cron調度上運行任務
->everyMinute();    每分鍾運行一次任務
->everyFiveMinutes();   每五分鍾運行一次任務
->everyTenMinutes();    每十分鍾運行一次任務
->everyThirtyMinutes(); 每三十分鍾運行一次任務
->hourly(); 每小時運行一次任務
->daily();  每天凌晨零點運行任務
->dailyAt('13:00'); 每天13:00運行任務
->twiceDaily(1, 13);    每天1:00 & 13:00運行任務
->weekly(); 每周運行一次任務
->monthly();    每月運行一次任務
->monthlyOn(4, '15:00');    每月4號15:00運行一次任務
->quarterly();  每個季度運行一次
->yearly(); 每年運行一次
->timezone('America/New_York'); 設置時區

 


免責聲明!

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



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