async def METHOD_NAME(
    cls,
    session_factory: DbSessionFactory,
    message_handler: MessageHandler,
    max_retries: int,
    mq_host: str,
    mq_port: int,
    mq_username: str,
    mq_password: str,
    message_exchange_name: str,
):
    mq_conn = await aio_pika.connect_robust(
        host=mq_host, port=mq_port, login=mq_username, password=mq_password
    )
    channel = await mq_conn.channel()
    mq_message_exchange = await channel.declare_exchange(
        name=message_exchange_name,
        type=aio_pika.ExchangeType.TOPIC,
        auto_delete=False,
    )
    return cls(
        session_factory=session_factory,
        message_handler=message_handler,
        max_retries=max_retries,
        mq_conn=mq_conn,
        mq_message_exchange=mq_message_exchange,
    )