* @Link https://gitee.com/xmo/MineAdmin */ declare(strict_types=1); namespace Builder\Crontab; class MineCrontabScheduler { /** * MineCrontabManage */ protected MineCrontabManage $crontabManager; /** * \SplQueue */ protected \SplQueue $schedules; /** * MineCrontabScheduler constructor. * @param MineCrontabManage $crontabManager */ public function __construct(MineCrontabManage $crontabManager) { $this->schedules = new \SplQueue(); $this->crontabManager = $crontabManager; } public function schedule(): \SplQueue { foreach ($this->getSchedules() ?? [] as $schedule) { $this->schedules->enqueue($schedule); } return $this->schedules; } protected function getSchedules(): array { return $this->crontabManager->getCrontabList(); } }