%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps/app_api/lib/BackgroundJob/ |
Current File : //www/varak.net/nextcloud.varak.net/apps/app_api/lib/BackgroundJob/ProvidersAICleanUpJob.php |
<?php declare(strict_types=1); namespace OCA\AppAPI\BackgroundJob; use OCA\AppAPI\Db\SpeechToText\SpeechToTextProviderQueueMapper; use OCA\AppAPI\Db\TextProcessing\TextProcessingProviderQueueMapper; use OCA\AppAPI\Db\Translation\TranslationQueueMapper; use OCP\AppFramework\Utility\ITimeFactory; use OCP\BackgroundJob\IJob; use OCP\BackgroundJob\TimedJob; use OCP\DB\Exception; class ProvidersAICleanUpJob extends TimedJob { private const overdueTime = 7 * 24 * 60 * 60; public function __construct( ITimeFactory $time, private readonly TextProcessingProviderQueueMapper $mapperTextProcessing, private readonly SpeechToTextProviderQueueMapper $mapperSpeechToText, private readonly TranslationQueueMapper $mapperTranslation, ) { parent::__construct($time); $this->setInterval(24 * 60 * 60); # run one a day $this->setTimeSensitivity(IJob::TIME_INSENSITIVE); } protected function run($argument): void { // Iterate over all AI Providers queues and remove results older than one week. // This is reinsurance job, if everything is without errors, then each provider cleans up the garbage itself. try { $this->mapperTextProcessing->removeAllOlderThenThat(self::overdueTime); $this->mapperSpeechToText->removeAllOlderThenThat(self::overdueTime); $this->mapperTranslation->removeAllOlderThenThat(self::overdueTime); } catch (Exception) { } } }