Tick SecurityService's scheduled-report sweep

FeatureDaemonService
Shipped
September 2, 2026 at 5:22 AM UTC
Author
Kamo
Commit
5824233

Every five minutes. A schedule is set to the minute, so a finer tick buys nothing a member would notice and a coarser one makes an 8:00 report arrive at 8:15. DaemonService owns this for the same reason it owns the legal-package and lead-email sweeps: replicas: 1 with strategy Recreate means the old pod is gone before the new one starts, so a deploy window cannot double-fire. A @Scheduled in SecurityService, which rolls with surge, provably can — and there is no ShedLock anywhere in this fleet, so the pod count is the whole guarantee. @DisallowConcurrentExecution because a long sweep must not have a second one started on top of it: both would find the same schedules due, since nextRunAt is only advanced once the first has claimed them, and the same report would go out twice. Explicit timeouts for the same reason the sibling jobs have them — a default RestTemplate waits forever, and a pinned thread here means the sweep never runs again until the pod restarts, which is indistinguishable from "nothing was due". Nothing about a report crosses this process: the sweep returns counts, never rows.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing