mirror of https://github.com/sualko/cloud_bbb
55 lines
1.1 KiB
PHP
55 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace OCA\BigBlueButton\BackgroundJob;
|
|
|
|
use OCA\BigBlueButton\BigBlueButton\API;
|
|
use OCA\BigBlueButton\Service\RoomNotFound;
|
|
use OCA\BigBlueButton\Service\RoomService;
|
|
use OCP\AppFramework\Utility\ITimeFactory;
|
|
use OCP\BackgroundJob\IJobList;
|
|
use OCP\BackgroundJob\TimedJob;
|
|
|
|
class IsRunningJob extends TimedJob {
|
|
|
|
/** @var IJobList */
|
|
private $jobList;
|
|
|
|
/** @var RoomService */
|
|
private $service;
|
|
|
|
/** @var API */
|
|
private $api;
|
|
|
|
public function __construct(ITimeFactory $time, IJobList $jobList, RoomService $service, API $api) {
|
|
parent::__construct($time);
|
|
|
|
$this->jobList = $jobList;
|
|
$this->service = $service;
|
|
$this->api = $api;
|
|
|
|
$this->setInterval(15 * 60);
|
|
}
|
|
|
|
protected function run($argument) {
|
|
try {
|
|
$room = $this->service->find($argument['id']);
|
|
} catch (RoomNotFound $e) {
|
|
$this->jobList->remove($this, $argument);
|
|
return;
|
|
}
|
|
|
|
if (!$room->running) {
|
|
$this->jobList->remove($this, $argument);
|
|
return;
|
|
}
|
|
|
|
$isRunning = $this->api->isRunning($room);
|
|
|
|
if (!$isRunning) {
|
|
$this->service->updateRunning($room->id, $isRunning);
|
|
|
|
$this->jobList->remove($this, $argument);
|
|
}
|
|
}
|
|
}
|