1<?php
2
3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0.
4// See the LICENCE file in the repository root for full licence text.
5
6namespace App\Console;
7
8use Illuminate\Console\Scheduling\Schedule;
9use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
10
11class Kernel extends ConsoleKernel
12{
13 protected function commands(): void
14 {
15 $this->load(__DIR__.'/Commands');
16
17 require base_path('routes/console.php');
18 }
19
20 /**
21 * Define the application's command schedule.
22 *
23 * @param \Illuminate\Console\Scheduling\Schedule $schedule
24 *
25 * @return void
26 */
27 protected function schedule(Schedule $schedule)
28 {
29 $schedule->command('store:cleanup-stale-orders')
30 ->daily()
31 ->onOneServer();
32
33 $schedule->command('store:expire-products')
34 ->hourly()
35 ->onOneServer();
36
37 $schedule->command('builds:update-propagation-history')
38 ->everyThirtyMinutes()
39 ->onOneServer();
40
41 $schedule->command('forum:topic-cover-cleanup --no-interaction')
42 ->daily()
43 ->onOneServer();
44
45 $schedule->command('rankings:recalculate-country-stats')
46 ->cron('25 0,3,6,9,12,15,18,21 * * *')
47 ->onOneServer();
48
49 $schedule->command('modding:rank')
50 ->cron('*/20 * * * *')
51 ->withoutOverlapping(120)
52 ->onOneServer();
53
54 $schedule->command('oauth:delete-expired-tokens')
55 ->cron('14 1 * * *')
56 ->onOneServer();
57
58 $schedule->command('notifications:send-mail')
59 ->hourly()
60 ->withoutOverlapping(120)
61 ->onOneServer();
62
63 $schedule->command('user-notifications:cleanup')
64 ->everyThirtyMinutes()
65 ->withoutOverlapping(120)
66 ->onOneServer();
67
68 $schedule->command('notifications:cleanup')
69 ->cron('15,45 * * * *')
70 ->withoutOverlapping(120)
71 ->onOneServer();
72
73 $schedule->command('chat:expire-ack')
74 ->everyFiveMinutes()
75 ->withoutOverlapping(30)
76 ->onOneServer();
77
78 $schedule->command('daily-challenge:create-next')
79 ->cron('5 0 * * *')
80 ->onOneServer();
81
82 $schedule->command('daily-challenge:user-stats-calculate')
83 ->cron('10 0 * * *')
84 ->onOneServer();
85 }
86}