aboutsummaryrefslogtreecommitdiffstats
path: root/core/BackgroundJobs/GenerateMetadataJob.php
diff options
context:
space:
mode:
authorLouis Chemineau <louis@chmn.me>2024-07-11 14:55:30 +0200
committerLouis Chemineau <louis@chmn.me>2024-07-16 15:02:32 +0200
commitf00acebf9309fa532497e1137bfc5b7d26e036dd (patch)
tree8f4cab23682b945001daaa47f7262e3f6aa6be38 /core/BackgroundJobs/GenerateMetadataJob.php
parentbb1f27f3dfb286bc17bf2e6eb0699fe3a4e7ed12 (diff)
downloadnextcloud-server-f00acebf9309fa532497e1137bfc5b7d26e036dd.tar.gz
nextcloud-server-f00acebf9309fa532497e1137bfc5b7d26e036dd.zip
fix(files_metadata): Don't run generation job on every upgrade
Signed-off-by: Louis Chemineau <louis@chmn.me>
Diffstat (limited to 'core/BackgroundJobs/GenerateMetadataJob.php')
-rw-r--r--core/BackgroundJobs/GenerateMetadataJob.php17
1 files changed, 11 insertions, 6 deletions
diff --git a/core/BackgroundJobs/GenerateMetadataJob.php b/core/BackgroundJobs/GenerateMetadataJob.php
index 607d4dd7b20..809e139e6ef 100644
--- a/core/BackgroundJobs/GenerateMetadataJob.php
+++ b/core/BackgroundJobs/GenerateMetadataJob.php
@@ -15,14 +15,14 @@ use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\FilesMetadata\Exceptions\FilesMetadataNotFoundException;
use OCP\FilesMetadata\IFilesMetadataManager;
-use OCP\IConfig;
+use OCP\IAppConfig;
use OCP\IUserManager;
use Psr\Log\LoggerInterface;
class GenerateMetadataJob extends TimedJob {
public function __construct(
ITimeFactory $time,
- private IConfig $config,
+ private IAppConfig $appConfig,
private IRootFolder $rootFolder,
private IUserManager $userManager,
private IFilesMetadataManager $filesMetadataManager,
@@ -36,8 +36,13 @@ class GenerateMetadataJob extends TimedJob {
}
protected function run(mixed $argument): void {
+ if ($this->appConfig->getValueBool('core', 'metadataGenerationDone', false)) {
+ return;
+ }
+
+ $lastHandledUser = $this->appConfig->getValueString('core', 'metadataGenerationLastHandledUser', '');
+
$users = $this->userManager->search('');
- $lastHandledUser = $this->config->getAppValue('core', 'metadataGenerationLastHandledUser', '');
// we'll only start timer once we have found a valid user to handle
// meaning NOW if we have not handled any user from a previous run
@@ -53,7 +58,7 @@ class GenerateMetadataJob extends TimedJob {
continue;
}
- $this->config->setAppValue('core', 'metadataGenerationLastHandledUser', $userId);
+ $this->appConfig->setValueString('core', 'metadataGenerationLastHandledUser', $userId);
$this->scanFilesForUser($user->getUID());
// Stop if execution time is more than one hour.
@@ -62,8 +67,8 @@ class GenerateMetadataJob extends TimedJob {
}
}
- $this->jobList->remove(GenerateMetadataJob::class);
- $this->config->deleteAppValue('core', 'metadataGenerationLastHandledUser');
+ $this->appConfig->deleteKey('core', 'metadataGenerationLastHandledUser');
+ $this->appConfig->setValueBool('core', 'metadataGenerationDone', true);
}
private function scanFilesForUser(string $userId): void {