Docs/Python/aio_pika连接开启ssl的rabbitmq.md

1.2 KiB

def start(self):
        # Connect to RabbitMQ
        if self.rabbitmq_ssl:
            ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
            ssl_context.check_hostname = False
            ssl_context.verify_mode = ssl.CERT_NONE
            self.connection = await aio_pika.connect_robust(
                self.rabbitmq_url, ssl=True, ssl_context=ssl_context)
        else:
            self.connection = await aio_pika.connect_robust(self.rabbitmq_url)
        self.channel = await self.connection.channel()
        await self.channel.set_qos(prefetch_count=self.max_concurrent_tasks)

        # Declare exchange and queue
        exchange = await self.channel.declare_exchange(
            self.exchange_name, ExchangeType.TOPIC, durable=True
        )
        queue = await self.channel.declare_queue(self.queue_name, durable=True)

        # Bind queue to exchange with routing key
        await queue.bind(exchange, routing_key=self.routing_key)

        # Start consuming messages
        await queue.consume(self.consume_message)
        logging.info("Consumer started and waiting for messages...")
        # Keep the event loop running
        await asyncio.Future()