setInterval(60 * 60 * 24); $this->setTimeSensitivity(IJob::TIME_SENSITIVE); } /** * @inheritDoc */ #[\Override] public function run($argument): void { $interval = $this->appConfig->getInactiveLockTime(); $forceLobby = $this->appConfig->enableLobbyOnLockedRooms(); if ($interval === 0) { return; } $timestamp = $this->time->getTime() - $interval * 60 * 60 * 24; $time = $this->time->getDateTime('@' . $timestamp); $rooms = $this->roomService->getInactiveRooms($time); array_map(function (Room $room) use ($forceLobby) { $this->roomService->setReadOnly($room, Room::READ_ONLY); $this->logger->debug("Locking room {$room->getId()} due to inactivity"); if ($forceLobby) { $this->roomService->setLobby($room, Webinary::LOBBY_NON_MODERATORS, $this->time->getDateTime()); $this->logger->debug("Enabling lobby for room {$room->getId()}"); } }, $rooms); } }