getStats method

  1. @override
Future<Map<String, dynamic>> getStats()
override

Get failed job statistics

Implementation

@override
Future<Map<String, dynamic>> getStats() async {
  final typeStats = <String, int>{};
  final errorStats = <String, int>{};

  for (final job in _jobs.values) {
    typeStats[job.jobType] = (typeStats[job.jobType] ?? 0) + 1;
    errorStats[job.error] = (errorStats[job.error] ?? 0) + 1;
  }

  return {
    'total': _jobs.length,
    'byType': typeStats,
    'byError': errorStats,
    'oldestFailure': _jobs.isEmpty
        ? null
        : _jobs.values
            .reduce((a, b) => a.failedAt.isBefore(b.failedAt) ? a : b)
            .failedAt
            .toIso8601String(),
    'newestFailure': _jobs.isEmpty
        ? null
        : _jobs.values
            .reduce((a, b) => a.failedAt.isAfter(b.failedAt) ? a : b)
            .failedAt
            .toIso8601String(),
  };
}