diff options
Diffstat (limited to 'apps/files/lib/BackgroundJob/CleanupFileLocks.php')
-rw-r--r-- | apps/files/lib/BackgroundJob/CleanupFileLocks.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/apps/files/lib/BackgroundJob/CleanupFileLocks.php b/apps/files/lib/BackgroundJob/CleanupFileLocks.php new file mode 100644 index 00000000000..91bb145884b --- /dev/null +++ b/apps/files/lib/BackgroundJob/CleanupFileLocks.php @@ -0,0 +1,40 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\Files\BackgroundJob; + +use OC\Lock\DBLockingProvider; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; +use OCP\Lock\ILockingProvider; +use OCP\Server; + +/** + * Clean up all file locks that are expired for the DB file locking provider + */ +class CleanupFileLocks extends TimedJob { + /** + * sets the correct interval for this timed job + */ + public function __construct(ITimeFactory $time) { + parent::__construct($time); + $this->setInterval(5 * 60); + } + + /** + * Makes the background job do its work + * + * @param array $argument unused argument + * @throws \Exception + */ + public function run($argument) { + $lockingProvider = Server::get(ILockingProvider::class); + if ($lockingProvider instanceof DBLockingProvider) { + $lockingProvider->cleanExpiredLocks(); + } + } +} |