Unverified Commit c01eb077 authored by Christoph Wurst's avatar Christoph Wurst
Browse files

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: default avatarChristoph Wurst <christoph@winzerhof-wurst.at>
parent a6bc871c
......@@ -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 {
......
......@@ -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);
}
}
......@@ -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();
}
}
<?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);
}
/**
......
<?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;
}
......
<?php
declare(strict_types=1);
/**
* @copyright 2019 Georg Ehrke <oc.list@georgehrke.com>
*
......
......@@ -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);
}
/**
......
......@@ -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 {
......
<?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() {
......
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2018, Georg Ehrke
*
......
<?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() {
......
<?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 {
......
......@@ -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;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment