Skip to content

Commit 0281ab7

Browse files
authored
Merge pull request #5714 from nextcloud/backport/5688/stable33
[stable33] fix(cleanup): remove expired wopi tokens with single delete query
2 parents f5820f6 + e1b0eeb commit 0281ab7

2 files changed

Lines changed: 10 additions & 11 deletions

File tree

composer.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/Backgroundjobs/Cleanup.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66

77
namespace OCA\Richdocuments\Backgroundjobs;
88

9-
use OCA\Richdocuments\Db\WopiMapper;
109
use OCP\AppFramework\Utility\ITimeFactory;
1110
use OCP\BackgroundJob\TimedJob;
1211
use OCP\DB\QueryBuilder\IQueryBuilder;
1312
use OCP\IDBConnection;
1413

1514
class Cleanup extends TimedJob {
15+
private const EXPIRY_GRACE_PERIOD_SECONDS = 60;
16+
1617
public function __construct(
1718
ITimeFactory $time,
1819
private IDBConnection $db,
19-
private WopiMapper $wopiMapper,
2020
) {
2121
parent::__construct($time);
2222

@@ -28,18 +28,17 @@ protected function run($argument) {
2828
// Expire template mappings for file creation
2929
$query = $this->db->getQueryBuilder();
3030
$query->delete('richdocuments_template')
31-
->where($query->expr()->lte('timestamp', $query->createNamedParameter(time() - 60, IQueryBuilder::PARAM_INT)));
31+
->where($query->expr()->lte('timestamp', $query->createNamedParameter(time() - self::EXPIRY_GRACE_PERIOD_SECONDS, IQueryBuilder::PARAM_INT)));
3232
$query->executeStatement();
3333

3434
// Expired WOPI access tokens
3535
$this->cleanUpWopiTokens();
3636
}
3737

3838
private function cleanUpWopiTokens() {
39-
$tokenIds = $this->wopiMapper->getExpiredTokenIds(1000);
4039
$query = $this->db->getQueryBuilder();
4140
$query->delete('richdocuments_wopi')
42-
->where($query->expr()->in('id', $query->createNamedParameter($tokenIds, IQueryBuilder::PARAM_INT_ARRAY)));
41+
->where($query->expr()->lt('expiry', $query->createNamedParameter(time() - self::EXPIRY_GRACE_PERIOD_SECONDS, IQueryBuilder::PARAM_INT)));
4342
$query->executeStatement();
4443
}
4544
}

0 commit comments

Comments
 (0)