listDeadLetters method

  1. @override
Future<DeadLetterPage> listDeadLetters(
  1. String queue, {
  2. int limit = 50,
  3. int offset = 0,
})
override

Lists dead letter queue entries for queue, returning up to limit results starting at offset. Entries are typically ordered from newest to oldest unless documented otherwise by the implementation.

Implementation

@override
Future<DeadLetterPage> listDeadLetters(
  String queue, {
  int limit = 50,
  int offset = 0,
}) async {
  final state = _state(queue);
  final entries = List<DeadLetterEntry>.from(state.deadLetters)
    ..sort((a, b) => b.deadAt.compareTo(a.deadAt));
  if (entries.isEmpty || limit <= 0) {
    return const DeadLetterPage(entries: []);
  }
  final total = entries.length;
  final start = offset < 0 ? 0 : offset;
  if (start >= total) {
    return const DeadLetterPage(entries: []);
  }
  var end = start + limit;
  if (end > total) {
    end = total;
  }
  final slice = entries.sublist(start, end);
  final nextOffset = end < total ? end : null;
  return DeadLetterPage(entries: slice, nextOffset: nextOffset);
}