config = $config; $this->entityManager = $entityManager; } public function run(): void { if (!$this->config->get('adminNotifications') || !$this->config->get('adminNotificationsNewVersion')) { return; } $job = $this->entityManager->getNewEntity('Job'); $job->set([ 'name' => 'Check for New Version (job)', 'serviceName' => 'AdminNotifications', 'methodName' => 'jobCheckNewVersion', 'executeTime' => $this->getRunTime(), ]); $this->entityManager->saveEntity($job); return; } protected function getRunTime(): string { $hour = rand(0, 4); $minute = rand(0, 59); $nextDay = new DateTime('+ 1 day'); $time = $nextDay->format('Y-m-d') . ' ' . $hour . ':' . $minute . ':00'; $timeZone = $this->config->get('timeZone'); if (empty($timeZone)) { $timeZone = 'UTC'; } $datetime = new DateTime($time, new DateTimeZone($timeZone)); return $datetime->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d H:i:s'); } /** * For backward compatibility. * @deprecated */ protected function getEntityManager() /** @phpstan-ignore-line */ { return $this->entityManager; } }