public function testCronTask() { $cronTask = new CronTask(); $cronTask->setName('test'); $cronTaskLog = new CronTaskLog(); $cronTaskLog->setCronTask($cronTask); $this->assertEquals($cronTask, $cronTaskLog->getCronTask()); }
public function killAction(CronTaskLog $cronTaskLog) { $process = new Process('kill -kill ' . $cronTaskLog->getPid()); $exitCode = $process->run(); if ($exitCode !== 0) { return new Response("Exit code {$exitCode} " . $process->getOutput() . $process->getErrorOutput()); } return $this->redirect($this->generateUrl('dsp_cm_crontasks_log')); }
private function runCommand($string, $timeout = 0) { $entityManager = $this->managerRegistry->getManagerForClass('DspSoftsCronManagerBundle:CronTaskLog'); try { $process = new Process($string); $process->setTimeout($timeout); $process->start(array($this, 'callbackProcess')); $this->cronTaskLog->setPid($process->getPid()); $entityManager->persist($this->cronTaskLog); $entityManager->flush(); $exitCode = $process->wait(); $this->cronTaskLog->setDateEnd(new \DateTime()); if ($exitCode > 0) { $this->cronTaskLog->setStatus(CronTaskLog::STATUS_FAILED); } elseif ($process->getErrorOutput() != '') { $this->cronTaskLog->setStatus(CronTaskLog::STATUS_WARNING); } else { $this->cronTaskLog->setStatus(CronTaskLog::STATUS_SUCCESS); } $this->cronTaskLog->setPid(null); $entityManager->persist($this->cronTaskLog); $entityManager->flush(); return $exitCode !== 0; } catch (\Exception $e) { $this->cronTaskLog->setStatus(CronTaskLog::STATUS_FAILED); $this->cronTaskLog->setPid(null); $this->cronTaskLog->setDateEnd(new \DateTime()); $entityManager->persist($this->cronTaskLog); $entityManager->flush(); return 1; } }