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
Pika's current backpressure detection mechanism is meant as a heuristic to detect when the broker is blocking the connection. RabbitMQ has for some time supported Connection.Blocked/Unblocked notifications (also supported by Pika via add_on_connection_blocked_callback() and add_on_connection_unblocked_callback()), so at least with RabbitMQ, the latter is preferred.
Backpressure detection in Pika (Connection._detect_backpressure()) is presently slated for deprecation since (at least) RabbitMQ now makes backpressure explicit through Connection.Blocked and Connection.Unblocked notifications.
What may be more useful to users of Pika's non-blocking connections for managing memory usage is a simpler mechanism that notifies them when the connection's write buffer size exceeds a certain user-configured high-water mark (so they may suspend publishing to avoid overwhelming the app's memory) and when it goes below a user-configured low-water mark (so they may resume publishing). This concept is akin to asyncio's WriteTransport.set_write_buffer_limits().
The text was updated successfully, but these errors were encountered:
Pika's current backpressure detection mechanism is meant as a heuristic to detect when the broker is blocking the connection. RabbitMQ has for some time supported Connection.Blocked/Unblocked notifications (also supported by Pika via
add_on_connection_blocked_callback()
andadd_on_connection_unblocked_callback()
), so at least with RabbitMQ, the latter is preferred.Backpressure detection in Pika (Connection._detect_backpressure()) is presently slated for deprecation since (at least) RabbitMQ now makes backpressure explicit through Connection.Blocked and Connection.Unblocked notifications.
What may be more useful to users of Pika's non-blocking connections for managing memory usage is a simpler mechanism that notifies them when the connection's write buffer size exceeds a certain user-configured high-water mark (so they may suspend publishing to avoid overwhelming the app's memory) and when it goes below a user-configured low-water mark (so they may resume publishing). This concept is akin to asyncio's WriteTransport.set_write_buffer_limits().
The text was updated successfully, but these errors were encountered: