任务调度定义在 app/Console/Kernel.php 文件的 schedule 方法中, 该方法中已经包含了一个示例. 你可以自由地添加你须要的调度任务到Schedule 工具

开启调度

// 在 linux 环境中实行 root php /var/www/laravel/artisan schedule:run

consolephpLaravel 义务调剂  Console  React

/var/www/laravel 为你的项目目录, 该 Cron 将会每分钟调用 Laravel 命令调度, 然后 Laravel 评估你的调度任务并运行到期的任务.

定义调度

项目根目录 下创建定时任务所须要进行的操作

创建命令

php artisan make:console Stat_Test 该操作会在 app/Console/Commands 下天生一个 Stat_Test.php, 以下是小例子

<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;

class Stat_Test extends Command { /

The name and signature of the console command.

@var string

/

protected $signature = 'stat:test'; /

The console command description.

@var string

/

protected $description = 'stat:test'; /

Create a new command instance.

@return void

/

public function __construct()

{ parent::__construct();

} /

Execute the console command.

@return mixed

/

public function handle()

{ $this->addData();

} // 例子

public function addData() { $time = time(); $rand = rand(1, 1000); $id = \DB::table('data_test')->insertGetId(['uuid' => $time, 'uuid' => $rand]); if ($id) {

\Log::info('定时/数据插入成功', $id);

} else {

\Log::error('定时/数据插入失落败', $time);

}

}

}

值得把稳的是 这个文件中的 $signature = 'stat:test' 这个署名在 Kernel.php 中也要相应用到, 下面是附上 Kernel.php 的完全代码

<?phpnamespace 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\Inspire::class, '\App\Console\Commands\Stat_Test',

]; /

Define the application's command schedule.

@param \Illuminate\Console\Scheduling\Schedule $schedule

@return void

/

protected function schedule(Schedule $schedule)

{ // 为测试方便 每分钟实行一次

$schedule->command('stat:test')->everyMinute();

}

}

再强调一次 $schedule->command('stat:test') 里面的 stat:test 必须和上面的署名 $signature = 'stat:test' 对应上

引入调度文件

protected $commands = [

\App\Console\Commands\Inspire::class, '\App\Console\Commands\Stat_Test',

];

// 每周星期六 11:00 运行一次...$schedule->command('stat:test')->weekly()->saturdays()->at('11:00');// 每周星期一 01:00 运行一次...$schedule->command('stat:test')->weekly()->->mondays()->at('01:00');

调度常用选项

当然,你可以分配多种调度到任务

->cron(' '); 在自定义 Cron 调度上运行任务

->everyMinute(); 每分钟运行一次任务

->everyFiveMinutes(); 每五分钟运行一次任务

->everyTenMinutes(); 每十分钟运行一次任务

->everyThirtyMinutes(); 每三十分钟运行一次任务

->hourly(); 每小时运行一次任务

->daily(); 每天凌晨零点运行任务

->dailyAt('13:00'); 每天 13:00运行任务

->twiceDaily(1, 13); 每天 1:00 & 13:00 运行任务

->weekly(); 每周运行一次任务

->monthly(); 每月运行一次任务

下面是额外的调度约束列表

->weekdays(); 只在事情日运行任务

->sundays(); 每个星期天运行任务

->mondays(); 每个星期一运行任务

->tuesdays(); 每个星期二运行任务

->wednesdays(); 每个星期三运行任务

->thursdays(); 每个星期四运行任务

->fridays(); 每个星期五运行任务

->saturdays(); 每个星期六运行任务

->when(Closure); 基于特定测试运行任务

来源于:http://aabvip.com