public function getRelatedEntities(Job $job) { $related = array(); foreach ($job->getRelatedEntities() as $entity) { $class = ClassUtils::getClass($entity); $related[] = array('class' => $class, 'id' => json_encode($this->em->getClassMetadata($class)->getIdentifierValues($entity)), 'raw' => $entity); } return $related; }
/** * @Route("/{id}", name = "jms_jobs_details") * @Template */ public function detailsAction(Job $job) { $relatedEntities = array(); foreach ($job->getRelatedEntities() as $entity) { $class = ClassUtils::getClass($entity); $relatedEntities[] = array('class' => $class, 'id' => json_encode($this->registry->getManagerForClass($class)->getClassMetadata($class)->getIdentifierValues($entity)), 'raw' => $entity); } $statisticData = $statisticOptions = array(); if ($this->statisticsEnabled) { $dataPerCharacteristic = array(); foreach ($this->registry->getManagerForClass('JMSJobQueueBundle:Job')->getConnection()->query("SELECT * FROM jms_job_statistics WHERE job_id = " . $job->getId()) as $row) { $dataPerCharacteristic[$row['characteristic']][] = array($row['createdAt'], $row['charValue']); } if ($dataPerCharacteristic) { $statisticData = array(array_merge(array('Time'), $chars = array_keys($dataPerCharacteristic))); $startTime = strtotime($dataPerCharacteristic[$chars[0]][0][0]); $endTime = strtotime($dataPerCharacteristic[$chars[0]][count($dataPerCharacteristic[$chars[0]]) - 1][0]); $scaleFactor = $endTime - $startTime > 300 ? 1 / 60 : 1; // This assumes that we have the same number of rows for each characteristic. for ($i = 0, $c = count(reset($dataPerCharacteristic)); $i < $c; $i++) { $row = array((strtotime($dataPerCharacteristic[$chars[0]][$i][0]) - $startTime) * $scaleFactor); foreach ($chars as $name) { $value = (double) $dataPerCharacteristic[$name][$i][1]; switch ($name) { case 'memory': $value /= 1024 * 1024; break; } $row[] = $value; } $statisticData[] = $row; } } } return array('job' => $job, 'relatedEntities' => $relatedEntities, 'incomingDependencies' => $this->getRepo()->getIncomingDependencies($job), 'statisticData' => $statisticData, 'statisticOptions' => $statisticOptions); }