config = $config; $this->entityManager = $entityManager; } protected function getConfig() { return $this->config; } protected function getEntityManager() { return $this->entityManager; } /** * Get active Scheduler Jobs * * @return array */ public function getActiveJobs() { $query = "SELECT * FROM scheduled_job WHERE `status` = 'Active' AND deleted = 0"; $pdo = $this->getEntityManager()->getPDO(); $sth = $pdo->prepare($query); $sth->execute(); $rows = $sth->fetchAll(PDO::FETCH_ASSOC); $list = array(); foreach ($rows as $row) { $list[] = $row; } return $list; } /** * Add record to ScheduledJobLogRecord about executed job * * @param string $scheduledJobId * @param string $status * * @return string ID of created ScheduledJobLogRecord */ public function addLogRecord($scheduledJobId, $status, $runTime = null) { if (!isset($runTime)) { $runTime = date('Y-m-d H:i:s'); } $entityManager = $this->getEntityManager(); $scheduledJob = $entityManager->getEntity('ScheduledJob', $scheduledJobId); $scheduledJob->set('lastRun', $runTime); $entityManager->saveEntity($scheduledJob); $scheduledJobLog = $entityManager->getEntity('ScheduledJobLogRecord'); $scheduledJobLog->set(array( 'scheduledJobId' => $scheduledJobId, 'name' => $scheduledJob->get('name'), 'status' => $status, 'executionTime' => $runTime, )); $scheduledJobLogId = $entityManager->saveEntity($scheduledJobLog); return $scheduledJobLogId; } }