parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

AMQP - для обсуждения

sergei v.2 11.09 20:18

amqp
    $oAmqp[^amqp::create[
        $.host[localhost]                хост
        $.port(5672)                     порт
        $.user[user]                     username
        $.password[pass]                 пароль
        $.vhost[/]                       vhost
        $.login_method[AMQPLAIN|PLAIN|EXTERNAL] AMQPLAIN - поумолчанию
        $.login_response[]
        $.locale[en_US]                  локаль
        $.read_timeout(3000)             таймаут для записи (ms)
        $.write_timeout(3000)            таймаут для записи (ms)
        $.keepalive(false)
        $.insist(false)
        $.channel_rpc_timeout(0.0)
        $.tls[
            $.ca[/etc/ssl/ca.crt]
            $.cert[/etc/ssl/app.crt]
            $.key[/etc/ssl/app.key]
        ]
        $.heartbeat(0)
        $.retry[
            $.min_ms(500)
            $.max_ms(15000)
            $.factor(2.0)
            $.jitter(true)
        ]
    ]]
        Конструктор класса

    ^oAmqp.declare_exchange[
        $.name[main],
        $.type[direct|topic|headers|fanout] тип биржи
        $.passive(false)                    если true, не объявляет очередь, а проверяет ее существование и выдает исключение если ее не существует,
                                            если false и очередь существует, ничего не делает
        $.durable(false)                    гарантирует сохранность определения биржи после перезапуска брокера
        $.auto_delete(true)                 автоудаление биржи
        $.nowait(false)                     если установлено true, сервер не будет отвечать на метод. Клиенту не следует ожидать ответа метода.
    ]
        Объявить биржу 
        (Если серверу не удалось выполнить метод, он вызовет исключение канала или соединения)

    ^oAmqp.delete_exchange[
         $.exchange[]                        название биржи
         $.if_unused(false)                  если true, то очередь удалится только если не используется
         $.nowait(false)                     если установлено true, сервер не будет отвечать на метод. Клиенту не следует ожидать ответа метода.
    ]
        Удалить биржу
        (Если серверу не удалось выполнить метод, он вызовет исключение канала или соединения)

    ^oAmqp.declare_queue[
        $.queue[]                            если отставить пустой должно вернуть имя очереди
        $.exchange[]                         название биржи
        $.passive(false)                     если true не объявляет очередь, а проверяет ее существование и выдает исключение если ее не существует,
                                             если false и очередь существует, ничего не делает
        $.durable(false)                     гарантирует сохранность определения очереди после перезапуска брокера
        $.auto_delete(true)                  автоудаление очереди
        $.nowait(false)                      если установлено true, сервер не будет отвечать на метод. Клиенту не следует ожидать ответа метода.
    ]
        Объявить очередь
        (Если серверу не удалось выполнить метод, он вызовет исключение канала или соединения)

    ^oAmqp.delete_queue[
        $.queue[]                            если отставить пустой должно вернуть имя очереди
        $.if_unused(false)                   если true, то очередь удалится только если не используется
        $.if_empty(false)                    если установлено true, очередь удалиться только если пуста
        $.nowait(false)                      если установлено true, сервер не будет отвечать на метод. Клиенту не следует ожидать ответа метода.
    ]
        Удалить очередь
        (Если серверу не удалось выполнить метод, он вызовет исключение канала или соединения)

    ^oAmqp.publish[
           $.msg[msg]                         строка сообщения (возможно json-строка)
           $.properties[]                     hash - доп свойства для сообщения например можно установить заголовки или отложить выполнение сообщения
           $.exchange[]                       название биржи, если не указать, то надо указать queue, которая создастся для биржи по умолчанию 
           $.queue[]                          название очереди, если отставить пустым должно опубликоваться на биржу
           $.mandatory(false)                 если true и сообщение никуда не попало, сообщение будет возвращено отправителю
           $.create_queue(true)               если true, то объявит очередь, если ее нет
           $.create_exchange(true)            если true, то объявит биржу, если ее нет
    ]
        Опубликовать сообщение

    ^oAmqp.publish[^array::create[
           $.msg[msg]                         строка сообщения (возможно json-строка)
           $.properties[]                     hash - доп свойства для сообщения например можно установить заголовки или отложить выполнение сообщения
           $.exchange[]                       название биржи, если не указать, то надо указать queue, которая создастся для биржи по умолчанию 
           $.queue[]                          название очереди, если отставить пустым должно опубликоваться на биржу
           $.mandatory(false)                 если true и сообщение никуда не попало, сообщение будет возвращено отправителю
           $.create_queue(true)               если true, то объявит очередь, если ее нет
           $.create_exchange(true)            если true, то объявит биржу, если ее нет
        ;...;...
    ]]
        Опубликовать несколько сообщений


    ^oAmqp.consume[
        $.queue[]                             имя очереди
        $.consumer_tag[]                      идентификатор слушателя, если оставить пустым будет сгенерирован автоматический
        $.no_ack(false)                       если false, то при получении сообщение, оно будет сразу подвержено,
                                              если true, то сообщение будет считаться обработанным после явного подтверждения методом ack
        $.nowait(false)                       если установлено true, сервер не будет отвечать на метод. Клиенту не следует ожидать ответа метода
        $.callback[$my_callback_method]       функция для обработки сообщений
    ]
        Слушать сообщение из очереди
        (Если серверу не удалось выполнить метод, он вызовет исключение канала или соединения)

    @my_callback_method[$h]
        $h.msg                                string - сообщение
        $h.delivery_tag                       string - тег доставки(используется для подтверждения сообщения)
        $h.consumer_tag                       string - идентификатор слушателя
        $h.exchange                           string - название биржи
        $h.queue                              string - название очереди
        $h.properties                         hash - доп свойства для сообщения например можно установить заголовки
        
        Пример функции, которая будет обрабатывать сообщения

    ^oAmqp.stop_consume[]
        Остановить прослушивание очереди


    ^oAmqp.ack[delivery_tag]
        Подтвердить обработку сообщение

    ^oAmqp.reject[delivery_tag]
        Отклонить обработку сообщение и вернуть его обратно в очередь