創建定時任務
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'); 設置時區