fix(config): fail fast on invalid operation-day zone

运营日时区只认 PARAM:msgx.operation-day.zone:JobRunner、HistorySweepJob、JdbcSnapshotLogRepository.purgeBefore 改走注入的 OperationDayProps;ScheduleProcessor/AdftProcessor 删除「非法值回退字面量」;新增 @Context 启动自检 OperationDayZoneCheck,配置错位在启动时暴露。

验证:./gradlew test 126 tests / 0 fail(新增 OperationDayPropsTest 覆盖合法解析与非法即失败)。
This commit is contained in:
windyboy
2026-09-12 20:34:56 +08:00
parent 3f2a1be75b
commit 9554b1aae8
8 changed files with 68 additions and 10 deletions
@@ -133,7 +133,7 @@ class AdftProcessor(
private val clock: Clock,
) {
private val opDay = OperationDayCalculator(
zone = runCatching { ZoneId.of(operationDayProps.zone) }.getOrElse { ZoneId.of("Asia/Shanghai") },
zone = operationDayProps.zoneId(),
cutoffHour = operationDayProps.cutoffHour,
)
@@ -69,7 +69,7 @@ class ScheduleProcessor(
private val mapper: ObjectMapper,
private val clock: Clock,
) {
private val zone: ZoneId = runCatching { ZoneId.of(operationDayProps.zone) }.getOrElse { ZoneId.of("Asia/Shanghai") }
private val zone: ZoneId = operationDayProps.zoneId()
private val opDay = OperationDayCalculator(
zone = zone,
cutoffHour = operationDayProps.cutoffHour,