Downloads
Stars
Version
使用高性能的定时调度服务Forsun的Laravel组件。
composer require "snower/forsun-laravel"
'providers' => [
// ...
Snower\LaravelForsun\ServiceProvider::class,
],
'aliases' => [
// ...
'Forsun' => Snower\LaravelForsun\Facade::class,
],
php artisan vendor:publish --provider="Snower\LaravelForsun\ServiceProvider"
//不指定name是自动生成
Forsun::plan()->command('emails:send --force')->daily();
//指定name
Forsun::plan('email')->command(EmailsCommand::class, ['--force'])->daily();
Forsun::plan()->job(new Heartbeat)->everyFiveMinutes();
Forsun::plan()->exec('node /home/forge/script.js')->daily();
Forsun::plan()->fire('testevent', [])->everyMinute();
Forsun::plan()->http('http://www.baidu.com')->everyMinute();
注意:
$plan = Forsun::plan()->command('emails:send --force')->daily();
$plan->remove();
$plan = Forsun::plan()->command('emails:send --force')->daily();
$plan_name = $plan->getName();
Forsun::remove($plan_name);
方法 | 描述 |
---|---|
->hourly(); | 每小时运行 |
->hourlyAt(17); | 每小时的第 17 分钟执行一次任务 |
->daily(); | 每天午夜执行一次任务 |
->dailyAt('13:00'); | 每天的 13:00 执行一次任务 |
->monthly(); | 每月执行一次任务 |
->monthlyOn(4, '15:00'); | 在每个月的第四天的 15:00 执行一次任务 |
->everyMinute(); | 每分钟执行一次任务 |
->everyFiveMinutes(); | 每五分钟执行一次任务 |
->everyTenMinutes(); | 每十分钟执行一次任务 |
->everyFifteenMinutes(); | 每十五分钟执行一次任务 |
->everyThirtyMinutes(); | 每半小时执行一次任务 |
->at(strtoetime("2018-03-05 12:32:12")); | 在指定时间2018-03-05 12:32:12运行一次 |
->interval(10); | 从当前时间开始计算每10秒运行一次 |
->later(5); | 从当前时间开始计算稍后5秒运行一次 |
->delay(30); | 从当前时间开始计算稍后30秒运行一次 |
需要复杂定时控制建议生成多个定时任务或是在处理器中再次发起定时任务计划更简便同时也性能更高。
调度器应该尽可能使用Event或是Job通过Queue Work可以更高性能运行。
#注册
php artisan forsun:schedule:register
#取消注册
php artisan forsun:schedule:unregister
The code for Predis is distributed under the terms of the MIT license (see LICENSE).