logger->info('[MonitorDispatcher] Executing MonitorDispatcher'); $monitorHandlers = [ 'movie' => MonitorMovieCommand::class, 'tvepisode' => MonitorTvEpisodeCommand::class, 'tvseason' => MonitorTvSeasonCommand::class, 'tvshows' => MonitorTvShowCommand::class, ]; $monitors = $this->monitorRepository->findBy(['status' => ['New', 'Active']]); foreach ($monitors as $monitor) { $monitor->setStatus('In Progress'); $this->monitorRepository->getEntityManager()->flush(); $command = $monitorHandlers[$monitor->getMonitorType()]; $this->logger->info('[MonitorDispatcher] Dispatching ' . $command . ' for ' . $monitor->getTitle()); $this->bus->dispatch(new $command($monitor->getId())); } } }