restorePendingTimers method

Future<void> restorePendingTimers()

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));
  }
}