entityManager = $entityManager; } /** * Get active scheduled job list. */ public function getActiveScheduledJobList(): Collection { return $this->entityManager ->getRepository('ScheduledJob') ->select([ 'id', 'scheduling', 'job', 'name', ]) ->where([ 'status' => 'Active' ]) ->find(); } /** * Add record to ScheduledJobLogRecord about executed job. */ public function addLogRecord( string $scheduledJobId, string $status, ?string $runTime = null, ?string $targetId = null, ?string $targetType = null ): void { if (!isset($runTime)) { $runTime = date('Y-m-d H:i:s'); } $entityManager = $this->entityManager; $scheduledJob = $entityManager->getEntity('ScheduledJob', $scheduledJobId); if (!$scheduledJob) { return; } $scheduledJob->set('lastRun', $runTime); $entityManager->saveEntity($scheduledJob, ['silent' => true]); $scheduledJobLog = $entityManager->getEntity('ScheduledJobLogRecord'); $scheduledJobLog->set([ 'scheduledJobId' => $scheduledJobId, 'name' => $scheduledJob->get('name'), 'status' => $status, 'executionTime' => $runTime, 'targetId' => $targetId, 'targetType' => $targetType, ]); $entityManager->saveEntity($scheduledJobLog); } }