Skip to content

Scheduled jobs

Generated from $schedule-> calls in api/app and api/packages

The scheduler runs from api/scheduler.sh, which calls schedule:run for every tenant domain, so each entry below runs once per tenant. Conditions in the code (for example demo mode only on demo tenants) are not shown; follow the file link to see them.

Package Kind Target Frequency File
app job new ReminderAboutWebinarJob(WebinarTermReminderStatusEnum::REMINDED_HOUR_BEFORE) everyFiveMinutes() api/app/Console/Kernel.php
app job new ReminderAboutWebinarJob(WebinarTermReminderStatusEnum::REMINDED_DAY_BEFORE) everySixHours() api/app/Console/Kernel.php
app job new ReminderAboutConsultationJob(ConsultationTermReminderStatusEnum::REMINDED_HOUR_BEFORE) everyMinute() api/app/Console/Kernel.php
app job new ReminderAboutConsultationJob(ConsultationTermReminderStatusEnum::REMINDED_DAY_BEFORE) hourly() api/app/Console/Kernel.php
auth command 'ulams:auth:prune-agent-audit' daily() src/UlamsAuthServiceProvider.php
auth command 'ulams:auth:prune-device-authorizations' hourly() src/UlamsAuthServiceProvider.php
cart command AbandonedCart::class dailyAt('1:00') src/Providers/ScheduleServiceProvider.php
cart job RenewRecursiveProduct::class hourly() src/Providers/ScheduleServiceProvider.php
cart job ExpireRecursiveProduct::class daily() src/Providers/ScheduleServiceProvider.php
core command 'csp-reports:prune' dailyAt('03:20') src/UlamsServiceProvider.php
courses job CheckForDeadlines::class hourly() src/ScheduleServiceProvider.php
courses job ActivateCourseJob::class daily() src/ScheduleServiceProvider.php
demo command ) renders ''--force' => true' as '--force=1', // which Symfony rejects for an option without a value (the reset then never ran) $parameters = ['--force']; $domain = method_exists($this->app, 'domain') ? $this->app->domain() : null; if (is_string($domain) && $domain !== '') { $parameters['--domain'] = $domain; } $schedule->command(ResetDemoCommand::class, $parameters cron((string) config(self::CONFIG_KEY . '.reset.cron', '0 * * * *'))->withoutOverlapping(120)->runInBackground() src/UlamsDemoServiceProvider.php
living-course command 'living-course:poll' everyFifteenMinutes()->withoutOverlapping()) src/UlamsLivingCourseServiceProvider.php
lti command 'ulams:lti:rotate-keys' monthlyOn(1, '03:00') src/UlamsLtiServiceProvider.php
reports call fn () => $this->calculateAndStore() cron($this->cronExpression()) src/Metrics/AbstractMetric.php
tasks job new OverdueTaskJob(0, config('ulams_tasks.notifications.overdue_period')) daily() src/Providers/ScheduleServiceProvider.php
video job DetectStuckVideo::class everyThirtyMinutes() src/Providers/ScheduleServiceProvider.php