Сведения о вопросе

LARVION

04:43, 28th August, 2020

AMQP и очередь "порциями"?

Просмотров: 277   Ответов: 2

Необходимо организовать очередь сообщений с «порционной» отдачей клиентам. Например:


поступило в очередь 1000 сообщений за интервал 1-2 секунды, нужно отдать эту очередь обработчику по 100 сообщений в секунду.


Сейчас очередь организована на RabbitMQ, но подобные настройки не нашел, чтение документации и гугление ничего не дало, видимо он такой режим работы не поддерживает. Подскажите наиболее труЪ-решение.



  Сведения об ответе

P_S_S

20:50, 4th August, 2020

Поддерживает, с помощью prefetch.
Для руби код будет примерно таким:

    mq_conn = AMQP.connect
    mq = MQ.new(mq_conn).prefetch(100)

    mq.queue("queue").subscribe do |header, message|
        # processing...
    end

Правда это не регулирует скорость отдачи, но сообщения получателю будут отправлены именно порцией в 100 штук. Таким образом если несколько получателей, то 1000 сообщений будет отправлено между ними порциями по 100 штук.

Если необходимо именно 100 сообщений в секунду, то по всей видимости нужно вручную использовать .pop с нужным интервалом.


  Сведения об ответе

fo_I_K

17:43, 16th August, 2020

я не уверен, но такое точно есть в JBoss HornetQ


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться