# Tarantool → Oracle 同步 Job

## 开关与 Cron

| Key | 默认 | 说明 |
|-----|------|------|
| `meter.monitor.sync.enabled` | `false` | 显式开启才调度 |
| `meter.monitor.sync.cron` | `0 */1 * * * ?` | 每分钟 |

对齐 [`StatusSyncScheduler`](../../../src/main/java/com/steerinfo/abnormalHandler/scheduler/StatusSyncScheduler.java) 模式。

## 流程

1. 单飞锁（`AtomicBoolean`），重叠则跳过。
2. 从 Tarantool 扫描 `_dirty == true` 的行（`select` 后过滤或专用 index）。
3. 解码为 `List<MeterWorkMonitor>`。
4. 逐条调用 `meterWorkMonitorMapper.updateByPrimaryKeySelective`。
5. 成功行：`update` 清 `_dirty=false`。
6. 记录成功/失败条数日志。

## 类

| 类 | 包 |
|----|-----|
| `MeterWorkMonitorSyncScheduler` | `...meterworkmonitor.scheduler` |
| `MeterWorkMonitorSyncService` | `...meterworkmonitor.service`（或同包 service 子包） |

## 监控建议

- 每次同步耗时、dirty 数量、Oracle 失败条数。
- dirty 长期堆积时检查 Oracle 连通性或 batch SQL。
