getStats method

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

Get driver statistics

Implementation

@override
Future<Map<String, dynamic>> getStats() async {
  final baseStats = await super.getStats();

  try {
    final command = await _getConnection();

    final mainCount = await command.send_object(['LLEN', _mainQueue]);
    final delayedCount = await command.send_object(['ZCARD', _delayedQueue]);
    final processingCount = await command.send_object([
      'HLEN',
      _processingHash,
    ]);
    final failedCount = await command.send_object(['LLEN', _failedQueue]);

    return {
      ...baseStats,
      'connection': {
        'host': host,
        'port': port,
        'is_connected': _isConnected,
        'queue_name': queueName,
      },
      'queue': {
        'main_jobs': _asInt(mainCount),
        'delayed_jobs': _asInt(delayedCount),
        'processing_jobs': _asInt(processingCount),
        'failed_jobs': _asInt(failedCount),
        'total_jobs': _asInt(mainCount) + _asInt(delayedCount),
      },
    };
  } catch (e) {
    return {...baseStats, 'error': e.toString()};
  }
}