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