Class AnnotationDrivenSchedulingConfig
@Scheduled) for real deployments.
This used to live on SchedulerConfig, which is gated to the scheduler profile
because it wires Quartz triggers. That coupled two unrelated things: Quartz job wiring, and
whether @Scheduled methods run at all. Production nodes run
spring.profiles.active=production without scheduler, so every @Scheduled
method in the codebase was silently dormant there — including the nightly search reindex, the
pipeline reconciler, submitted-task maintenance, the DEA warm-up, and the HomeStats daily
refresh. Several of those are written as though they run nightly (the HomeStats cron is set to
4 AM specifically to follow the 3 AM reindex), so the intent was always that they fire.
Scoped to EnvironmentProfiles.PRODUCTION and EnvironmentProfiles.SCHEDULER
deliberately. It is NOT active under test — tests must not have background crons firing
mid-run — and not under cli, where a process runs one command and exits.
Individual jobs stay independently controllable through their own cron / interval / enabled properties; this only decides whether the scheduling machinery exists at all.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
AnnotationDrivenSchedulingConfig
public AnnotationDrivenSchedulingConfig()
-