private function loadConsumers($app) { $app['rabbit.consumer'] = $app->share(function ($app) { if (!isset($app['rabbit.consumers'])) { return; } $consumers = []; foreach ($app['rabbit.consumers'] as $name => $options) { $connection = $this->getConnection($app, $options, $app['rabbit.connections']); $consumer = new Consumer($connection); $consumer->setExchangeOptions($options['exchange_options']); $consumer->setQueueOptions($options['queue_options']); $consumer->setCallback(array($app[$options['callback']], 'execute')); if (array_key_exists('qos_options', $options)) { $consumer->setQosOptions($options['qos_options']['prefetch_size'], $options['qos_options']['prefetch_count'], $options['qos_options']['global']); } if (array_key_exists('qos_options', $options)) { $consumer->setIdleTimeout($options['idle_timeout']); } if (array_key_exists('auto_setup_fabric', $options) && !$options['auto_setup_fabric']) { $consumer->disableAutoSetupFabric(); } $consumers[$name] = $consumer; } return $consumers; }); }