The hourly training reminder tick

FeatureDaemonService
Ya
11 Agosti 2026, 17:10 UTC
Mwandishi
Kamo
Ahadi ya
53baa4a

HOURLY at :10, unlike the legal sweep's daily 13:00. Training reminds each org at its OWN local send hour, and Organization.timezone spans 21 hours (Pacific/Honolulu to Australia/Sydney) — a single daily UTC tick means "today" is wrong for most of the platform, which is exactly why the legal sweep tells a Sydney tenant "due today" on the wrong day. Each tick visits only the orgs whose local hour matches, typically one to three, so this scans LESS than a daily cross-org job rather than 24x more. The job lives here rather than as a @Scheduled in DocsService because this deployment is replicas: 1 with strategy: Recreate, so the old pod is gone before the new one starts and a deploy window cannot double-fire. DocsService is RollingUpdate with maxSurge: 1, so for the length of every rollout there are two pods and both believe it is 09:00 — and for a job whose output is mail to every overdue employee on the platform, "usually once" is not a property. Explicit finite timeouts, because a default RestTemplate waits forever and, combined with @DisallowConcurrentExecution, one wedged downstream stops the job running again until the pod restarts — silently, and indistinguishably from "nothing was due". Never rethrows at Quartz: an escaping exception may refire immediately, turning a skipped hour into a retry storm.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei