flushQueue method

  1. @override
Future<void> flushQueue()
override

Flushes the event queue, attempting to send all queued events

Implementation

@override
Future<void> flushQueue() async {
  LinkFortyLogger.log('Flushing event queue (${_eventQueue.count} events)');

  while (!_eventQueue.isEmpty) {
    final event = _eventQueue.dequeue();
    if (event == null) break;

    try {
      await _sendEvent(event);
      await _persistQueue();
      LinkFortyLogger.log('Queued event sent: ${event.eventName}');
    } catch (e) {
      // Re-queue if send fails
      _eventQueue.enqueue(event);
      await _persistQueue();
      LinkFortyLogger.log('Failed to send queued event: $e');
      return;
    }
  }
}