diff --git a/lib/Cron/CronHelper.php b/lib/Cron/CronHelper.php index 0c9f1ade0b..91a6566e82 100644 --- a/lib/Cron/CronHelper.php +++ b/lib/Cron/CronHelper.php @@ -1,9 +1,9 @@ Daemon::STATUS_STARTING, 'token' => $token @@ -23,6 +23,10 @@ class CronHelper { return $daemon; } + static function restartDaemon($token) { + return self::createDaemon($token); + } + static function getDaemon() { return Setting::getValue(self::DAEMON_SETTING); } diff --git a/lib/Cron/Supervisor.php b/lib/Cron/Supervisor.php index 5493ea926f..92d51ec2f9 100644 --- a/lib/Cron/Supervisor.php +++ b/lib/Cron/Supervisor.php @@ -6,21 +6,18 @@ if(!defined('ABSPATH')) exit; class Supervisor { public $daemon; public $token; - public $force_run; - function __construct($force_run = false) { - $this->daemon = CronHelper::getDaemon(); + function __construct() { $this->token = CronHelper::createToken(); - $this->force_run = $force_run; + $this->daemon = $this->getDaemon(); } function checkDaemon() { $daemon = $this->daemon; - $execution_timeout_exceeded = ($daemon) ? - (time() - (int)$daemon['updated_at']) > CronHelper::DAEMON_EXECUTION_TIMEOUT : - false; - if(!$daemon || $execution_timeout_exceeded) { - CronHelper::createOrRestartDaemon($this->token); + $execution_timeout_exceeded = + (time() - (int)$daemon['updated_at']) > CronHelper::DAEMON_EXECUTION_TIMEOUT; + if($execution_timeout_exceeded) { + CronHelper::restartDaemon($this->token); return $this->runDaemon(); } return $daemon; @@ -31,4 +28,13 @@ class Supervisor { $daemon = CronHelper::getDaemon(); return $daemon; } + + function getDaemon() { + $daemon = CronHelper::getDaemon(); + if(!$daemon) { + CronHelper::createDaemon($this->token); + return $this->runDaemon(); + } + return $daemon; + } } \ No newline at end of file