Merge pull request #13401 from nextcloud/improve-lookup-server-behaviour
improve lookup server behaviour
This commit is contained in:
commit
138fdf0793
|
@ -36,8 +36,8 @@ class RetryJob extends Job {
|
||||||
private $jobList;
|
private $jobList;
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $lookupServer;
|
private $lookupServer;
|
||||||
/** @var int how much time should be between two tries (10 minutes) */
|
/** @var int how much time should be between two, will be increased for each retry */
|
||||||
private $interval = 600;
|
private $interval = 100;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param IClientService $clientService
|
* @param IClientService $clientService
|
||||||
|
@ -75,7 +75,7 @@ class RetryJob extends Job {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function run($argument) {
|
protected function run($argument) {
|
||||||
if ($argument['retryNo'] === 5 || empty($this->lookupServer)) {
|
if ($this->killBackgroundJob((int)$argument['retryNo'])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +108,27 @@ class RetryJob extends Job {
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
protected function shouldRun($argument) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,8 @@ class UpdateLookupServer {
|
||||||
private $jobList;
|
private $jobList;
|
||||||
/** @var string URL point to lookup server */
|
/** @var string URL point to lookup server */
|
||||||
private $lookupServer;
|
private $lookupServer;
|
||||||
|
/** @var bool */
|
||||||
|
private $lookupServerEnabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param AccountManager $accountManager
|
* @param AccountManager $accountManager
|
||||||
|
@ -68,6 +70,8 @@ class UpdateLookupServer {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->lookupServerEnabled = $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') === 'yes';
|
||||||
|
|
||||||
$this->lookupServer = $config->getSystemValue('lookup_server', 'https://lookup.nextcloud.com');
|
$this->lookupServer = $config->getSystemValue('lookup_server', 'https://lookup.nextcloud.com');
|
||||||
if(!empty($this->lookupServer)) {
|
if(!empty($this->lookupServer)) {
|
||||||
$this->lookupServer = rtrim($this->lookupServer, '/');
|
$this->lookupServer = rtrim($this->lookupServer, '/');
|
||||||
|
@ -79,7 +83,8 @@ class UpdateLookupServer {
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
*/
|
*/
|
||||||
public function userUpdated(IUser $user) {
|
public function userUpdated(IUser $user) {
|
||||||
if(empty($this->lookupServer)) {
|
|
||||||
|
if (!$this->shouldUpdateLookupServer()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,4 +155,17 @@ class UpdateLookupServer {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if we should update the lookup server, we only do it if
|
||||||
|
*
|
||||||
|
* * we have a valid URL
|
||||||
|
* * the lookup server update was enabled by the admin
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
private function shouldUpdateLookupServer() {
|
||||||
|
return $this->lookupServerEnabled || !empty($this->lookupServer);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue