Package Data | |
---|---|
Maintainer Username: | EricYZhu |
Maintainer Contact: | snower199@gmail.com (snower) |
Package Create Date: | 2018-10-25 |
Package Last Update: | 2018-10-25 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-23 03:11:37 |
Package Statistics | |
---|---|
Total Downloads: | 14 |
Monthly Downloads: | 2 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
使用高性能的定时调度服务 forsun 的 Laravel/Lumen 组件。
composer require ericychu/forsun-laravel
'providers' => [
// ...
Snower\LaravelForsun\ServiceProvider::class,
],
'aliases' => [
// ...
'Forsun' => Snower\LaravelForsun\Facade::class,
],
php artisan vendor:publish --provider="Snower\LaravelForsun\ServiceProvider"
// 注册 Service Provider
$app->register(Snower\LaravelForsun\ServiceProvider::class);
// 注册 Facade
$app->withFacades(true, [
...,
Snower\LaravelForsun\Facade::class => 'Forsun',
]);
cp /PROJECT_DIRECTORY/vendor/ericychu/forsun-laravel/src/config.php /PROJECT_DIRECTORY/config/forsun.php
//不指定 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('https://www.google.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).