diff options
Diffstat (limited to 'apps/federation/lib/SyncJob.php')
-rw-r--r-- | apps/federation/lib/SyncJob.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/apps/federation/lib/SyncJob.php b/apps/federation/lib/SyncJob.php new file mode 100644 index 00000000000..b802dfa9308 --- /dev/null +++ b/apps/federation/lib/SyncJob.php @@ -0,0 +1,35 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\Federation; + +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; +use Psr\Log\LoggerInterface; + +class SyncJob extends TimedJob { + public function __construct( + protected SyncFederationAddressBooks $syncService, + protected LoggerInterface $logger, + ITimeFactory $timeFactory, + ) { + parent::__construct($timeFactory); + // Run once a day + $this->setInterval(24 * 60 * 60); + $this->setTimeSensitivity(self::TIME_INSENSITIVE); + } + + protected function run($argument) { + $this->syncService->syncThemAll(function ($url, $ex): void { + if ($ex instanceof \Exception) { + $this->logger->error("Error while syncing $url.", [ + 'exception' => $ex, + ]); + } + }); + } +} |