/** * @param string $jobName * @param bool $force * @return ArrayResolver * @throws \InvalidArgumentException */ protected function getJobResolver($jobName, $force = false) { $dbJob = $this->queryJob($jobName); if (!$dbJob) { throw new \InvalidArgumentException('Unknown job.'); } $finder = new PhpExecutableFinder(); $phpExecutable = $finder->find(); $rootDir = dirname($this->getContainer()->getParameter('kernel.root_dir')); $resolver = new ArrayResolver(); if ($dbJob->getEnabled() || $force) { $job = new ShellJob(); $job->setCommand($phpExecutable . ' app/console ' . $dbJob->getCommand(), $rootDir); $job->setSchedule(new CrontabSchedule($dbJob->getSchedule())); $job->raw = $dbJob; $resolver->addJob($job); } return $resolver; }