diff --git a/src/Indatus/Dispatcher/Scheduling/ScheduledCommandInterface.php b/src/Indatus/Dispatcher/Scheduling/ScheduledCommandInterface.php index 279f952..7674746 100644 --- a/src/Indatus/Dispatcher/Scheduling/ScheduledCommandInterface.php +++ b/src/Indatus/Dispatcher/Scheduling/ScheduledCommandInterface.php @@ -23,7 +23,7 @@ public function user(); /** * When a command should run * @param Scheduler $scheduler - * @return \Indatus\Dispatcher\Scheduling\Schedulable + * @return \Indatus\Dispatcher\Scheduling\Schedulable|\Indatus\Dispatcher\Scheduling\Schedulable[] */ public function schedule(Schedulable $scheduler); diff --git a/src/Indatus/Dispatcher/ServiceProvider.php b/src/Indatus/Dispatcher/ServiceProvider.php index effd433..0b829fb 100644 --- a/src/Indatus/Dispatcher/ServiceProvider.php +++ b/src/Indatus/Dispatcher/ServiceProvider.php @@ -40,6 +40,7 @@ public function boot() */ public function register() { + /** @var \Indatus\Dispatcher\ConfigResolver $resolver */ $resolver = App::make('\Indatus\Dispatcher\ConfigResolver'); //load the scheduler of the appropriate driver diff --git a/src/Indatus/Dispatcher/Services/ScheduleService.php b/src/Indatus/Dispatcher/Services/ScheduleService.php index d328cf3..6b690af 100644 --- a/src/Indatus/Dispatcher/Services/ScheduleService.php +++ b/src/Indatus/Dispatcher/Services/ScheduleService.php @@ -40,7 +40,7 @@ abstract public function isDue(Schedulable $scheduler); /** * Get all commands that are scheduled * - * @return array + * @return \Indatus\Dispatcher\Scheduling\ScheduledCommandInterface[] */ public function getScheduledCommands() { @@ -64,17 +64,18 @@ public function getQueue() /** @var \Indatus\Dispatcher\Queue $queue */ $queue = App::make('Indatus\Dispatcher\Queue'); - /** @var \Indatus\Dispatcher\Scheduling\Schedulable $scheduler */ - $scheduler = App::make('Indatus\Dispatcher\Scheduling\Schedulable'); - + /** @var \Indatus\Dispatcher\Scheduling\ScheduledCommandInterface $command */ foreach ($this->getScheduledCommands() as $command) { + /** @var \Indatus\Dispatcher\Scheduling\Schedulable $scheduler */ + $scheduler = App::make('Indatus\Dispatcher\Scheduling\Schedulable'); + //could be multiple schedules based on arguments $schedules = $command->schedule($scheduler); if (!is_array($schedules)) { $schedules = array($schedules); } - + //echo $command->getName()." (".count($schedules).")\n"; foreach ($schedules as $schedule) { if (($schedule instanceOf Schedulable) === false) { throw new \InvalidArgumentException('Schedule for "'.$command->getName().'" is not an instance of Schedulable');