%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Cron/ |
Current File : //www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Cron/AbstractTimedJob.php |
<?php /* * @copyright 2023 Passwords App * * @author Marius David Wieschollek * @license AGPL-3.0 * * This file is part of the Passwords App * created by Marius David Wieschollek. */ namespace OCA\Passwords\Cron; use Exception; use OCP\AppFramework\Utility\ITimeFactory; use OCP\BackgroundJob\TimedJob; use OCA\Passwords\Services\ConfigurationService; use OCA\Passwords\Services\EnvironmentService; use OCA\Passwords\Services\LoggingService; /** * Class AbstractCronJob * * @package OCA\Passwords\Cron */ abstract class AbstractTimedJob extends TimedJob { /** * AbstractTimedJob constructor. * * @param ITimeFactory $time * @param LoggingService $logger * @param ConfigurationService $config * @param EnvironmentService $environment */ public function __construct( ITimeFactory $time, protected LoggingService $logger, protected ConfigurationService $config, protected EnvironmentService $environment ) { parent::__construct($time); } /** * @param $argument */ protected function run($argument): void { if($this->environment->getRunType() !== EnvironmentService::TYPE_CRON) { $this->logger->error(get_class($this).' must be executed as cron job'); return; } $this->config->setAppValue('cron/php/version/id', PHP_VERSION_ID); $this->config->setAppValue('cron/php/version/string', phpversion()); try { $this->runJob($argument); } catch(Exception $e) { $this->logger->logException($e); } } /** * @param $argument * * @throws Exception */ abstract protected function runJob($argument): void; }