/** * Transform a CronJon into a ShellJob. * * @param CronJob $dbJob * @return ShellJob */ protected function createJob(CronJob $dbJob) { $job = new ShellJob(); $job->setCommand($this->commandBuilder->build($dbJob->getCommand()), $this->rootDir); $job->setSchedule(new CrontabSchedule($dbJob->getSchedule())); $job->raw = $dbJob; return $job; }
public function testRun() { $jobs = []; foreach ($this->configuration->getJobs() as $jobArray) { $job = new ShellJob(); $job->setCommand($this->assembleShellJobString($jobArray['command'])); $job->setSchedule(new CrontabSchedule($jobArray['schedule'])); $jobs[] = $job; } $cronMock = $this->getMock(Cron::class); $cronMock->expects($this->once())->method('run')->will($this->returnValue(null)); $service = new CronService($this->configuration); $service->setCron($cronMock); $service->run(); $serviceResolver = \PHPUnit_Framework_Assert::readAttribute($service, 'resolver'); $resolverJobs = \PHPUnit_Framework_Assert::readAttribute($serviceResolver, 'jobs'); $this->assertEquals($jobs, $resolverJobs); }
/** * @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; }
protected function addJobs() { foreach ($this->configuration->getJobs() as $jobArray) { $job = new ShellJob(); $job->setCommand($this->assembleShellJobString($jobArray['command'])); $job->setSchedule(new CrontabSchedule($jobArray['schedule'])); $this->getResolver()->addJob($job); } }