Skip to content

Commit

Permalink
Merge pull request #25550 from nextcloud/reconnectwrapper-wait-timeout
Browse files Browse the repository at this point in the history
[20] change reconect wrapper to only check connection after inactivity
  • Loading branch information
rullzer authored Feb 9, 2021
2 parents b3ac30c + b51f32e commit 3042a5a
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions lib/private/DB/ReconnectWrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,22 @@
class ReconnectWrapper extends \Doctrine\DBAL\Connection {
public const CHECK_CONNECTION_INTERVAL = 60;

private $lastConnectionCheck = null;
private $lastQuery = null;

public function __construct(array $params, Driver $driver, Configuration $config = null, EventManager $eventManager = null) {
parent::__construct($params, $driver, $config, $eventManager);
$this->lastConnectionCheck = time();
$this->lastQuery = time();
}

public function connect() {
$now = time();
$checkTime = $now - self::CHECK_CONNECTION_INTERVAL;

if ($this->lastConnectionCheck > $checkTime || $this->isTransactionActive()) {
if ($this->lastQuery > $checkTime || $this->isTransactionActive()) {
$this->lastQuery = $now;
return parent::connect();
} else {
$this->lastConnectionCheck = $now;
$this->lastQuery = $now;
if (!$this->ping()) {
$this->close();
}
Expand Down

0 comments on commit 3042a5a

Please sign in to comment.