diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2022-02-22 11:24:38 +0100 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2022-02-22 13:55:06 +0100 |
commit | c01eb0775648bd54e9cd4904499a30f448554968 (patch) | |
tree | c06b619b4af515e48db263af4d82cee18473ba31 | |
parent | a6bc871c96d071ef54d9fd3b547df606fa9d19ca (diff) | |
download | nextcloud-server-c01eb0775648bd54e9cd4904499a30f448554968.tar.gz nextcloud-server-c01eb0775648bd54e9cd4904499a30f448554968.zip |
Mark DAV background jobs as time sensitive/insensitive
* As a bonus they are now all using OCP base classes
* Strict typing is now enforced
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
13 files changed, 109 insertions, 59 deletions
diff --git a/apps/dav/lib/BackgroundJob/CalendarRetentionJob.php b/apps/dav/lib/BackgroundJob/CalendarRetentionJob.php index 6be6d7c3cd1..b57ed07d5c2 100644 --- a/apps/dav/lib/BackgroundJob/CalendarRetentionJob.php +++ b/apps/dav/lib/BackgroundJob/CalendarRetentionJob.php @@ -40,6 +40,7 @@ class CalendarRetentionJob extends TimedJob { // Run four times a day $this->setInterval(6 * 60 * 60); + $this->setTimeSensitivity(self::TIME_SENSITIVE); } protected function run($argument): void { diff --git a/apps/dav/lib/BackgroundJob/CleanupDirectLinksJob.php b/apps/dav/lib/BackgroundJob/CleanupDirectLinksJob.php index 6c10a05f9a5..073fc53e07a 100644 --- a/apps/dav/lib/BackgroundJob/CleanupDirectLinksJob.php +++ b/apps/dav/lib/BackgroundJob/CleanupDirectLinksJob.php @@ -26,26 +26,25 @@ declare(strict_types=1); */ namespace OCA\DAV\BackgroundJob; -use OC\BackgroundJob\TimedJob; use OCA\DAV\Db\DirectMapper; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; class CleanupDirectLinksJob extends TimedJob { - /** @var ITimeFactory */ - private $timeFactory; - /** @var DirectMapper */ private $mapper; public function __construct(ITimeFactory $timeFactory, DirectMapper $mapper) { - $this->setInterval(60 * 60 * 24); - - $this->timeFactory = $timeFactory; + parent::__construct($timeFactory); $this->mapper = $mapper; + + // Run once a day at off-peak time + $this->setInterval(24 * 60 * 60); + $this->setTimeSensitivity(self::TIME_INSENSITIVE); } protected function run($argument) { // Delete all shares expired 24 hours ago - $this->mapper->deleteExpired($this->timeFactory->getTime() - 60 * 60 * 24); + $this->mapper->deleteExpired($this->time->getTime() - 60 * 60 * 24); } } diff --git a/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php b/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php index 9621b5d9499..6339e721c93 100644 --- a/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php +++ b/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php @@ -26,8 +26,8 @@ declare(strict_types=1); */ namespace OCA\DAV\BackgroundJob; -use OC\BackgroundJob\TimedJob; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; use OCP\IDBConnection; class CleanupInvitationTokenJob extends TimedJob { @@ -35,21 +35,20 @@ class CleanupInvitationTokenJob extends TimedJob { /** @var IDBConnection */ private $db; - /** @var ITimeFactory */ - private $timeFactory; - - public function __construct(IDBConnection $db, ITimeFactory $timeFactory) { + public function __construct(IDBConnection $db, ITimeFactory $time) { + parent::__construct($time); $this->db = $db; - $this->timeFactory = $timeFactory; - $this->setInterval(60 * 60 * 24); + // Run once a day at off-peak time + $this->setInterval(24 * 60 * 60); + $this->setTimeSensitivity(self::TIME_INSENSITIVE); } public function run($argument) { $query = $this->db->getQueryBuilder(); $query->delete('calendar_invitations') ->where($query->expr()->lt('expiration', - $query->createNamedParameter($this->timeFactory->getTime()))) + $query->createNamedParameter($this->time->getTime()))) ->execute(); } } diff --git a/apps/dav/lib/BackgroundJob/EventReminderJob.php b/apps/dav/lib/BackgroundJob/EventReminderJob.php index b67a5d970bb..ab7dadd8c0b 100644 --- a/apps/dav/lib/BackgroundJob/EventReminderJob.php +++ b/apps/dav/lib/BackgroundJob/EventReminderJob.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright Copyright (c) 2016 Thomas Citharel <nextcloud@tcit.fr> * @@ -23,8 +26,9 @@ */ namespace OCA\DAV\BackgroundJob; -use OC\BackgroundJob\TimedJob; use OCA\DAV\CalDAV\Reminder\ReminderService; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; use OCP\IConfig; class EventReminderJob extends TimedJob { @@ -35,17 +39,16 @@ class EventReminderJob extends TimedJob { /** @var IConfig */ private $config; - /** - * EventReminderJob constructor. - * - * @param ReminderService $reminderService - * @param IConfig $config - */ - public function __construct(ReminderService $reminderService, IConfig $config) { + public function __construct(ITimeFactory $time, + ReminderService $reminderService, + IConfig $config) { + parent::__construct($time); $this->reminderService = $reminderService; $this->config = $config; - /** Run every 5 minutes */ - $this->setInterval(5); + + // Run every 5 minutes + $this->setInterval(5 * 60); + $this->setTimeSensitivity(self::TIME_SENSITIVE); } /** diff --git a/apps/dav/lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php b/apps/dav/lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php index 2fdb7617937..a338a172d66 100644 --- a/apps/dav/lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php +++ b/apps/dav/lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright 2017 Georg Ehrke <oc.list@georgehrke.com> * @@ -22,8 +25,9 @@ */ namespace OCA\DAV\BackgroundJob; -use OC\BackgroundJob\QueuedJob; use OCA\DAV\CalDAV\BirthdayService; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\QueuedJob; use OCP\IConfig; class GenerateBirthdayCalendarBackgroundJob extends QueuedJob { @@ -34,14 +38,11 @@ class GenerateBirthdayCalendarBackgroundJob extends QueuedJob { /** @var IConfig */ private $config; - /** - * GenerateAllBirthdayCalendarsBackgroundJob constructor. - * - * @param BirthdayService $birthdayService - * @param IConfig $config - */ - public function __construct(BirthdayService $birthdayService, + public function __construct(ITimeFactory $time, + BirthdayService $birthdayService, IConfig $config) { + parent::__construct($time); + $this->birthdayService = $birthdayService; $this->config = $config; } diff --git a/apps/dav/lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php b/apps/dav/lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php index 0813de7d1ad..85da81b3b91 100644 --- a/apps/dav/lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php +++ b/apps/dav/lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright 2019 Georg Ehrke <oc.list@georgehrke.com> * diff --git a/apps/dav/lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php b/apps/dav/lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php index 9b3aeac5904..f7addd58248 100644 --- a/apps/dav/lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php +++ b/apps/dav/lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php @@ -28,8 +28,9 @@ declare(strict_types=1); namespace OCA\DAV\BackgroundJob; -use OC\BackgroundJob\TimedJob; use OCA\DAV\CalDAV\CalDavBackend; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; use OCP\Calendar\BackendTemporarilyUnavailableException; use OCP\Calendar\IMetadataProvider; use OCP\Calendar\Resource\IBackend as IResourceBackend; @@ -53,17 +54,20 @@ class UpdateCalendarResourcesRoomsBackgroundJob extends TimedJob { /** @var CalDavBackend */ private $calDavBackend; - public function __construct(IResourceManager $resourceManager, + public function __construct(ITimeFactory $time, + IResourceManager $resourceManager, IRoomManager $roomManager, IDBConnection $dbConnection, CalDavBackend $calDavBackend) { + parent::__construct($time); $this->resourceManager = $resourceManager; $this->roomManager = $roomManager; $this->dbConnection = $dbConnection; $this->calDavBackend = $calDavBackend; - // run once an hour + // Run once an hour $this->setInterval(60 * 60); + $this->setTimeSensitivity(self::TIME_SENSITIVE); } /** diff --git a/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php b/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php index f9276b61956..ed3c324e710 100644 --- a/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php +++ b/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php @@ -30,27 +30,37 @@ namespace OCA\DAV\Tests\unit\BackgroundJob; use OCA\DAV\BackgroundJob\EventReminderJob; use OCA\DAV\CalDAV\Reminder\ReminderService; +use OCP\AppFramework\Utility\ITimeFactory; use OCP\IConfig; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class EventReminderJobTest extends TestCase { - /** @var ReminderService|\PHPUnit\Framework\MockObject\MockObject */ + /** @var ITimeFactory|MockObject */ + private $time; + + /** @var ReminderService|MockObject */ private $reminderService; - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ + /** @var IConfig|MockObject */ private $config; - /** @var EventReminderJob|\PHPUnit\Framework\MockObject\MockObject */ + /** @var EventReminderJob|MockObject */ private $backgroundJob; protected function setUp(): void { parent::setUp(); + $this->time = $this->createMock(ITimeFactory::class); $this->reminderService = $this->createMock(ReminderService::class); $this->config = $this->createMock(IConfig::class); - $this->backgroundJob = new EventReminderJob($this->reminderService, $this->config); + $this->backgroundJob = new EventReminderJob( + $this->time, + $this->reminderService, + $this->config, + ); } public function data(): array { diff --git a/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php b/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php index 6c6e02ce717..e0601c5c71a 100644 --- a/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php +++ b/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright Copyright (c) 2017, Georg Ehrke * @@ -27,15 +30,20 @@ namespace OCA\DAV\Tests\unit\BackgroundJob; use OCA\DAV\BackgroundJob\GenerateBirthdayCalendarBackgroundJob; use OCA\DAV\CalDAV\BirthdayService; +use OCP\AppFramework\Utility\ITimeFactory; use OCP\IConfig; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class GenerateBirthdayCalendarBackgroundJobTest extends TestCase { - /** @var BirthdayService | \PHPUnit\Framework\MockObject\MockObject */ + /** @var ITimeFactory|MockObject */ + private $time; + + /** @var BirthdayService | MockObject */ private $birthdayService; - /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */ + /** @var IConfig | MockObject */ private $config; /** @var \OCA\DAV\BackgroundJob\GenerateBirthdayCalendarBackgroundJob */ @@ -44,11 +52,15 @@ class GenerateBirthdayCalendarBackgroundJobTest extends TestCase { protected function setUp(): void { parent::setUp(); + $this->time = $this->createMock(ITimeFactory::class); $this->birthdayService = $this->createMock(BirthdayService::class); $this->config = $this->createMock(IConfig::class); $this->backgroundJob = new GenerateBirthdayCalendarBackgroundJob( - $this->birthdayService, $this->config); + $this->time, + $this->birthdayService, + $this->config, + ); } public function testRun() { diff --git a/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php b/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php index eba2a21f761..360c4c791c7 100644 --- a/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php +++ b/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright Copyright (c) 2018, Georg Ehrke * diff --git a/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php b/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php index f3b1878a833..00931d53f64 100644 --- a/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php +++ b/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright 2019 Georg Ehrke <oc.list@georgehrke.com> * @@ -45,9 +48,6 @@ class RegisterRegenerateBirthdayCalendarsTest extends TestCase { /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */ private $jobList; - /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */ - private $config; - /** @var RegisterRegenerateBirthdayCalendars */ private $backgroundJob; @@ -57,10 +57,12 @@ class RegisterRegenerateBirthdayCalendarsTest extends TestCase { $this->time = $this->createMock(ITimeFactory::class); $this->userManager = $this->createMock(IUserManager::class); $this->jobList = $this->createMock(IJobList::class); - $this->config = $this->createMock(IConfig::class); - $this->backgroundJob = new RegisterRegenerateBirthdayCalendars($this->time, - $this->userManager, $this->jobList); + $this->backgroundJob = new RegisterRegenerateBirthdayCalendars( + $this->time, + $this->userManager, + $this->jobList + ); } public function testRun() { diff --git a/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php b/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php index 5974d0dec99..59b68452862 100644 --- a/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php +++ b/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright Copyright (c) 2018, Georg Ehrke * @@ -29,12 +32,14 @@ namespace OCA\DAV\Tests\unit\BackgroundJob; use OCA\DAV\BackgroundJob\UpdateCalendarResourcesRoomsBackgroundJob; use OCA\DAV\CalDAV\CalDavBackend; +use OCP\AppFramework\Utility\ITimeFactory; use OCP\Calendar\BackendTemporarilyUnavailableException; use OCP\Calendar\IMetadataProvider; use OCP\Calendar\Resource\IBackend; use OCP\Calendar\Resource\IManager as IResourceManager; use OCP\Calendar\Resource\IResource; use OCP\Calendar\Room\IManager as IRoomManager; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; interface tmpI extends IResource, IMetadataProvider { @@ -42,28 +47,36 @@ interface tmpI extends IResource, IMetadataProvider { class UpdateCalendarResourcesRoomsBackgroundJobTest extends TestCase { - /** @var UpdateCalendarResourcesRoomsBackgroundJob */ - private $backgroundJob; + /** @var ITimeFactory|MockObject */ + private $time; - /** @var IResourceManager | \PHPUnit\Framework\MockObject\MockObject */ + /** @var IResourceManager|MockObject */ private $resourceManager; - /** @var IRoomManager | \PHPUnit\Framework\MockObject\MockObject */ + /** @var IRoomManager|MockObject */ private $roomManager; - /** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject */ + /** @var CalDavBackend|MockObject */ private $calDavBackend; + /** @var UpdateCalendarResourcesRoomsBackgroundJob */ + private $backgroundJob; + protected function setUp(): void { parent::setUp(); + $this->time = $this->createMock(ITimeFactory::class); $this->resourceManager = $this->createMock(IResourceManager::class); $this->roomManager = $this->createMock(IRoomManager::class); $this->calDavBackend = $this->createMock(CalDavBackend::class); $this->backgroundJob = new UpdateCalendarResourcesRoomsBackgroundJob( - $this->resourceManager, $this->roomManager, self::$realDatabase, - $this->calDavBackend); + $this->time, + $this->resourceManager, + $this->roomManager, + self::$realDatabase, + $this->calDavBackend + ); } protected function tearDown(): void { diff --git a/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php b/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php index f631abaabe0..cf0691de3ac 100644 --- a/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php +++ b/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php @@ -56,8 +56,8 @@ class RetryJob extends Job { public function __construct(Notifications $notifications, - ITimeFactory $timeFactory) { - parent::__construct($timeFactory); + ITimeFactory $time) { + parent::__construct($time); $this->notifications = $notifications; } |