Prevent premature garbage collectionbut without blocking the rest of the application this time :)

This commit is contained in:
florian 2025-11-09 19:54:19 +01:00
parent 3363c0e9de
commit f51a66078e

View File

@ -59,17 +59,25 @@ class RabbitMQConsumer:
"x-dead-letter-exchange": self.exchange_name,
"x-dead-letter-routing-key": "notify.user.retry",
}
logger.debug(f"[RabbitMQ] Declaring retry queue '{self.retry_queue_name}' with args: {retry_queue_args}")
self.retry_queue = await self.channel.declare_queue(
self.retry_queue_name, durable=True, arguments=retry_queue_args
)
logger.debug(f"[RabbitMQ] Retry queue '{self.retry_queue_name}' declared.")
await self.channel.declare_queue(self.dlq_queue_name, durable=True)
logger.debug(f"[RabbitMQ] DLQ queue '{self.dlq_queue_name}' declared.")
metrics.start_metrics_server(port=9000)
await asyncio.gather(
metrics.update_queue_gauge(self.channel, self.queue_name),
metrics.update_queue_gauge(self.channel, self.retry_queue_name),
metrics.update_queue_gauge(self.channel, self.dlq_queue_name),
)
logger.debug(f"[Metrics] Prometheus metrics server started on port 9000.")
self._metric_tasks = [
asyncio.create_task(metrics.update_queue_gauge(self.channel, self.queue_name)),
asyncio.create_task(metrics.update_queue_gauge(self.channel, self.retry_queue_name)),
asyncio.create_task(metrics.update_queue_gauge(self.channel, self.dlq_queue_name)),
]
logger.debug(f"[Metrics] Gauge update tasks created for queues: {self.queue_name}, {self.retry_queue_name}, {self.dlq_queue_name}")
logger.info("[RabbitMQ] Connected, exchange, retry, and DLQ queues ready.")