Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 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);
 }
Пример #3
0
 /**
  * @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;
 }
Пример #4
0
 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);
     }
 }