You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On the server, all consumers seem to have a prefetch_count set to 0 (no limit) regardless of the configuration value.
According to the RabbitMQ docs, they changed the semantics of the global QoS parameter, and setting it to True as we've done does not enforce the prefetch limit on all channels in the connection but rather on all consumers in the channel. There is no way to have connection-wide limits with RabbitMQ.
The thing is: we create a new channel for each consumer. Therefore the QoS that was set in the main channel does not get applied to the consumer's channel, so it's always limitless. We need to make a basic_qos call after setting up the consumer channel.
The text was updated successfully, but these errors were encountered:
abompard
added a commit
to abompard/fedora-messaging
that referenced
this issue
Jul 29, 2020
According to [the RabbitMQ
docs](https://www.rabbitmq.com/consumer-prefetch.html), they changed the
semantics of the `global` QoS parameter, and setting it to `True` as
we've done does not enforce the prefetch limit on all channels in the
connection but rather on all consumers in the channel. There is no way
to have connection-wide limits with RabbitMQ.
Since we create a new channel for each consumer, we must set the QoS in
this channel and not in the main channel, otherwise it'll always be
limitless.
Fixesfedora-infra#223
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
According to [the RabbitMQ
docs](https://www.rabbitmq.com/consumer-prefetch.html), they changed the
semantics of the `global` QoS parameter, and setting it to `True` as
we've done does not enforce the prefetch limit on all channels in the
connection but rather on all consumers in the channel. There is no way
to have connection-wide limits with RabbitMQ.
Since we create a new channel for each consumer, we must set the QoS in
this channel and not in the main channel, otherwise it'll always be
limitless.
Fixes#223
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
On the server, all consumers seem to have a
prefetch_count
set to 0 (no limit) regardless of the configuration value.According to the RabbitMQ docs, they changed the semantics of the
global
QoS parameter, and setting it toTrue
as we've done does not enforce the prefetch limit on all channels in the connection but rather on all consumers in the channel. There is no way to have connection-wide limits with RabbitMQ.The thing is: we create a new channel for each consumer. Therefore the QoS that was set in the main channel does not get applied to the consumer's channel, so it's always limitless. We need to make a
basic_qos
call after setting up the consumer channel.The text was updated successfully, but these errors were encountered: