QUEUES¶
Для объявления Queue со всеми параметрами в Propan используется специальный класс propan.brokers.rabbit.RabbitQueue.
Вы можете использовать его как при получании сообщений, так и при их отправке:
from propan.brokers.rabbit import RabbitBroker, RabbitQueue
broker = RabbitBroker()
@broker.handler(RabbitQueue("test"))
async def handler():
...
...
await broker.publish("Hi!", RabbitQueue("test"))
Конструктор RabbitQueue принимает следующие аргументы:
name: str - название очередиdurable: bool = False - при установке в True, информация об очереди будет хранится в файловой системе и восстанавливаться при перезагрузке RabbitMQauto_delete: bool = False - при установке в True, очередь будет удалена при отключении клиента от RabbitMQexclusive: bool = False - к этой очереди возможно подключиться только в рамках текущего соединения. Такая очередь также будет удалена при отключении от RabbitMQ.passive: bool = False- при установке в
False, Propan попытается создать очередь с требуемыми параметрами, либо провалидирует соответсвие этих параметров уже существующей очереди с таким именем. - при установке в
True, Propan не будет создавать очередь, а только подключится к существующей. При этом, если запрашиваемая очередь не существует, возникнет ошибка
- при установке в
robust: bool = True - пересоздавать очередь при переподключении к RabbitMQtimeout: int | float - время ожидания ответа от RabbitMQarguments: dict[str, Any] | None = None - кастомные аргументы очереди
Параметры подключения очереди к exchange также передаются в ее конструкторе:
routing_key: str - ключ маршрутизации для подключения к exchange. Если не указан - используется агрументnamebind_arguments: dict[str, Any] | None = None - аргументы подключения (используются для header exchange маршрутизации)