restorePendingTimers method
Restores pending timers from the store after a process restart.
Timers that are past due are fired immediately. Future timers get a dart:async Timer scheduled.
Implementation
Future<void> restorePendingTimers() async {
final pendingTimers = await _store.loadPendingTimers();
for (final timer in pendingTimers) {
final timerId = timer.workflowTimerId;
if (_completers.containsKey(timerId)) continue; // Already tracked
final completer = Completer<void>();
_completers[timerId] = completer;
_scheduleOrFire(timerId, DateTime.parse(timer.fireAt));
}
}