|
|
|
@ -36,8 +36,8 @@ class RetryJob extends Job { |
|
|
|
|
private $jobList; |
|
|
|
|
/** @var string */ |
|
|
|
|
private $lookupServer; |
|
|
|
|
/** @var int how much time should be between two tries (10 minutes) */ |
|
|
|
|
private $interval = 600; |
|
|
|
|
/** @var int how much time should be between two, will be increased for each retry */ |
|
|
|
|
private $interval = 100; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param IClientService $clientService |
|
|
|
@ -75,7 +75,7 @@ class RetryJob extends Job { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function run($argument) { |
|
|
|
|
if ($argument['retryNo'] === 5 || empty($this->lookupServer)) { |
|
|
|
|
if ($this->killBackgroundJob((int)$argument['retryNo'])) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -108,6 +108,27 @@ class RetryJob extends Job { |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
protected function shouldRun($argument) { |
|
|
|
|
return !isset($argument['lastRun']) || ((time() - $argument['lastRun']) > $this->interval); |
|
|
|
|
$retryNo = (int)$argument['retryNo']; |
|
|
|
|
$delay = $this->interval * 6 ** $retryNo; |
|
|
|
|
return !isset($argument['lastRun']) || ((time() - $argument['lastRun']) > $delay); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* check if we should kill the background job |
|
|
|
|
* |
|
|
|
|
* The lookup server should no longer be contacted if: |
|
|
|
|
* |
|
|
|
|
* - max retries are reached (set to 5) |
|
|
|
|
* - lookup server was disabled by the admin |
|
|
|
|
* - no valid lookup server URL given |
|
|
|
|
* |
|
|
|
|
* @param int $retryCount |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
protected function killBackgroundJob($retryCount) { |
|
|
|
|
$maxTriesReached = $retryCount >= 5; |
|
|
|
|
$lookupServerDisabled = $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') !== 'yes'; |
|
|
|
|
|
|
|
|
|
return $maxTriesReached || $lookupServerDisabled || empty($this->lookupServer); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|