Remove all locks after ttl from the db

This commit is contained in:
Robin Appelman 2015-12-09 14:13:05 +01:00
parent 5c95939bf3
commit e191953942
2 changed files with 4 additions and 10 deletions

View File

@ -235,10 +235,10 @@ class DBLockingProvider extends AbstractLockingProvider {
/** /**
* cleanup empty locks * cleanup empty locks
*/ */
public function cleanEmptyLocks() { public function cleanExpiredLocks() {
$expire = $this->timeFactory->getTime(); $expire = $this->timeFactory->getTime();
$this->connection->executeUpdate( $this->connection->executeUpdate(
'DELETE FROM `*PREFIX*file_locks` WHERE `lock` = 0 AND `ttl` < ?', 'DELETE FROM `*PREFIX*file_locks` WHERE `ttl` < ?',
[$expire] [$expire]
); );
} }
@ -262,7 +262,7 @@ class DBLockingProvider extends AbstractLockingProvider {
public function __destruct() { public function __destruct() {
try { try {
$this->cleanEmptyLocks(); $this->cleanExpiredLocks();
} catch (\Exception $e) { } catch (\Exception $e) {
// If the table is missing, the clean up was successful // If the table is missing, the clean up was successful
if ($this->connection->tableExists('file_locks')) { if ($this->connection->tableExists('file_locks')) {

View File

@ -85,13 +85,7 @@ class DBLockingProvider extends LockingProvider {
$this->assertEquals(3, $this->getLockEntryCount()); $this->assertEquals(3, $this->getLockEntryCount());
$this->instance->cleanEmptyLocks(); $this->instance->cleanExpiredLocks();
$this->assertEquals(3, $this->getLockEntryCount());
$this->instance->releaseAll();
$this->instance->cleanEmptyLocks();
$this->assertEquals(2, $this->getLockEntryCount()); $this->assertEquals(2, $this->getLockEntryCount());
} }