getStats method
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(),
};
}