Skip to content

Commit 21969e7

Browse files
added SubscriptionsCleanup background job
1 parent 2c4c929 commit 21969e7

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

appinfo/info.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ This Nextcloud extension has been developed by [@verdigado](https://github.com/v
3333
<database>mysql</database>
3434
<nextcloud min-version="28" max-version="30"/>
3535
</dependencies>
36+
<background-jobs>
37+
<job>OCA\DavPush\BackgroundJob\SubscriptionsCleanup</job>
38+
</background-jobs>
3639
<commands>
3740
<command>OCA\DavPush\Command\Subscription\ListSubscriptions</command>
3841
<command>OCA\DavPush\Command\Subscription\SubscriptionsCleanup</command>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/**
6+
* @copyright 2025 Jonathan Treffler <mail@jonathan-treffler.de>
7+
*
8+
* @author Jonathan Treffler <mail@jonathan-treffler.de>
9+
*
10+
* @license GNU AGPL version 3 or any later version
11+
*
12+
* This program is free software: you can redistribute it and/or modify
13+
* it under the terms of the GNU Affero General Public License as
14+
* published by the Free Software Foundation, either version 3 of the
15+
* License, or (at your option) any later version.
16+
*
17+
* This program is distributed in the hope that it will be useful,
18+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+
* GNU Affero General Public License for more details.
21+
*
22+
* You should have received a copy of the GNU Affero General Public License
23+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
24+
*
25+
*/
26+
27+
namespace OCA\DavPush\BackgroundJob;
28+
29+
use Psr\Log\LoggerInterface;
30+
31+
use OCP\BackgroundJob\TimedJob;
32+
use OCP\AppFramework\Utility\ITimeFactory;
33+
34+
use OCA\DavPush\Service\SubscriptionService;
35+
36+
class SubscriptionsCleanup extends TimedJob {
37+
38+
public function __construct(
39+
private LoggerInterface $logger,
40+
private SubscriptionService $subscriptionService,
41+
ITimeFactory $time
42+
) {
43+
parent::__construct($time);
44+
45+
// Run once an hour
46+
$this->setInterval(3600);
47+
}
48+
49+
protected function run($arguments) {
50+
$result = $this->subscriptionService->cleanupAll();
51+
52+
$this->logger->info("DAV Push background job deleted " . $result . " expired/failing subscriptions");
53+
}
54+
}

0 commit comments

Comments
 (0)