andrewdyer / scheduler
使用这个无框架的cron调度器安排事件,它可以轻松集成到现有的项目中或作为独立命令调度器运行。
v1.0.0
2021-09-16 12:59 UTC
Requires
- php: >=7.3
- dragonmantank/cron-expression: ^3.1
Requires (Dev)
- phpunit/phpunit: ^9.5
README
使用这个无框架的cron调度器安排工作,它可以轻松集成到现有的项目中或作为独立的命令调度器运行。
许可
在MIT许可下。完全免费用于私人或商业项目。
安装
composer require andrewdyer/scheduler
用法
// SendReminderJob.php namespace App\Jobs; use Anddye\Scheduler\AbstractJob; class SendReminderJob extends AbstractJob { public function handle(): void { // TODO: Send reminder to user somehow } }
// index.php $scheduler = new Anddye\Scheduler\Scheduler(); // At every 45th minute, run the send reminder job. $scheduler->addJob(new App\Jobs\SendReminderJob())->setExpression('*/45 * * * *'); // add more jobs ... $scheduler->run();
工作频率
组合工作频率
// At minute 0 past hour 2 and 14 on Monday $scheduler->addJob(new App\Jobs\SendReminderJob())->dailyTwice(2, 14)->mondays();
// At every 15th minute on Friday $scheduler->addJob(new App\Jobs\SendReminderJob())->everyFifteenMinutes()->fridays();
// At every minute on Tuesday, Thursday, and Saturday $scheduler->addJob(new App\Jobs\SendReminderJob())->everyMinute()->days(2, 4, 6);
// At minute 45 on Monday, Tuesday, Wednesday, Thursday, and Friday $scheduler->addJob(new App\Jobs\SendReminderJob())->hourlyAt(45)->weekdays();
// At minute 1 on Monday, Wednesday, and Friday $scheduler->addJob(new App\Jobs\SendReminderJob())->hourly()->days(1,3,5);