loadFromConfig method

  1. @override
void loadFromConfig(
  1. ConfigInterface config,
  2. IQueueDriverRegistry registry
)
override

Loads queue configuration and registers drivers. Throws QueueException if configuration is invalid.

Implementation

@override
void loadFromConfig(ConfigInterface config, IQueueDriverRegistry registry) {
  try {
    final driverConfigs = config.get<Map>('queue.drivers') ?? {};
    final defaultDriverName = config.get<String>('queue.default') ?? 'memory';

    // Load all configured drivers
    driverConfigs.forEach((name, settings) {
      final driver = createDriverFromConfig(
        settings['driver'] as String? ?? 'memory',
        settings as Map<String, dynamic>,
      );
      registry.registerDriver(name as String, driver);
    });

    // Register default memory driver if no drivers configured
    if (registry.getDriverNames().isEmpty) {
      registry.registerDriver(
        'memory',
        InMemoryDriver(config: const DriverConfig(name: 'memory')),
      );
    }

    // Set default driver
    registry.setDefaultDriver(defaultDriverName);
  } catch (e) {
    throw QueueException('Failed to load queue configuration: $e');
  }
}