diff options
author | Louis Chemineau <louis@chmn.me> | 2024-07-11 14:55:30 +0200 |
---|---|---|
committer | Louis Chemineau <louis@chmn.me> | 2024-07-16 15:02:32 +0200 |
commit | f00acebf9309fa532497e1137bfc5b7d26e036dd (patch) | |
tree | 8f4cab23682b945001daaa47f7262e3f6aa6be38 /core/BackgroundJobs/GenerateMetadataJob.php | |
parent | bb1f27f3dfb286bc17bf2e6eb0699fe3a4e7ed12 (diff) | |
download | nextcloud-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.php | 17 |
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 { |