Connection

The Connection class implements the base behavior that all connection adapters extend.

class pika.connection.Connection(parameters=None, on_open_callback=None, on_open_error_callback=None, on_close_callback=None)[source]

This is the core class that implements communication with RabbitMQ. This class should not be invoked directly but rather through the use of an adapter such as SelectConnection or BlockingConnection.

Parameters:
  • parameters (pika.connection.Parameters) – Connection parameters
  • on_open_callback (method) – Called when the connection is opened
  • on_open_error_callback (method) – Called if the connection cant be opened
  • on_close_callback (method) – Called when the connection is closed
add_backpressure_callback(callback_method)[source]

Call method “callback” when pika believes backpressure is being applied.

Parameters:callback_method (method) – The method to call
add_on_close_callback(callback_method)[source]

Add a callback notification when the connection has closed. The callback will be passed the connection, the reply_code (int) and the reply_text (str), if sent by the remote server.

Parameters:callback_method (method) – Callback to call on close
add_on_connection_blocked_callback(callback_method)[source]

Add a callback to be notified when RabbitMQ has sent a Connection.Blocked frame indicating that RabbitMQ is low on resources. Publishers can use this to voluntarily suspend publishing, instead of relying on back pressure throttling. The callback will be passed the Connection.Blocked method frame.

See also ConnectionParameters.blocked_connection_timeout.

Parameters:callback_method (method) – Callback to call on Connection.Blocked, having the signature callback_method(pika.frame.Method), where the method frame’s method member is of type pika.spec.Connection.Blocked
add_on_connection_unblocked_callback(callback_method)[source]

Add a callback to be notified when RabbitMQ has sent a Connection.Unblocked frame letting publishers know it’s ok to start publishing again. The callback will be passed the Connection.Unblocked method frame.

Parameters:callback_method (method) – Callback to call on Connection.Unblocked, having the signature callback_method(pika.frame.Method), where the method frame’s method member is of type pika.spec.Connection.Unblocked
add_on_open_callback(callback_method)[source]

Add a callback notification when the connection has opened.

Parameters:callback_method (method) – Callback to call when open
add_on_open_error_callback(callback_method, remove_default=True)[source]

Add a callback notification when the connection can not be opened.

The callback method should accept the connection object that could not connect, and an optional error message.

Parameters:
  • callback_method (method) – Callback to call when can’t connect
  • remove_default (bool) – Remove default exception raising callback
add_timeout(deadline, callback_method)[source]

Adapters should override to call the callback after the specified number of seconds have elapsed, using a timer, or a thread, or similar.

Parameters:
  • deadline (int) – The number of seconds to wait to call callback
  • callback_method (method) – The callback method
basic_nack

Specifies if the server supports basic.nack on the active connection.

Return type:bool
channel(on_open_callback, channel_number=None)[source]

Create a new channel with the next available channel number or pass in a channel number to use. Must be non-zero if you would like to specify but it is recommended that you let Pika manage the channel numbers.

Parameters:
  • on_open_callback (method) – The callback when the channel is opened
  • channel_number (int) – The channel number to use, defaults to the next available.
Return type:

pika.channel.Channel

close(reply_code=200, reply_text='Normal shutdown')[source]

Disconnect from RabbitMQ. If there are any open channels, it will attempt to close them prior to fully disconnecting. Channels which have active consumers will attempt to send a Basic.Cancel to RabbitMQ to cleanly stop the delivery of messages prior to closing the channel.

Parameters:
  • reply_code (int) – The code number for the close
  • reply_text (str) – The text reason for the close
connect()[source]

Invoke if trying to reconnect to a RabbitMQ server. Constructing the Connection object should connect on its own.

consumer_cancel_notify

Specifies if the server supports consumer cancel notification on the active connection.

Return type:bool
exchange_exchange_bindings

Specifies if the active connection supports exchange to exchange bindings.

Return type:bool
is_closed

Returns a boolean reporting the current connection state.

is_closing

Returns True if connection is in the process of closing due to client-initiated close request, but closing is not yet complete.

is_open

Returns a boolean reporting the current connection state.

publisher_confirms

Specifies if the active connection can use publisher confirmations.

Return type:bool
remove_timeout(timeout_id)[source]

Adapters should override: Remove a timeout

Parameters:timeout_id (str) – The timeout id to remove
set_backpressure_multiplier(value=10)[source]

Alter the backpressure multiplier value. We set this to 10 by default. This value is used to raise warnings and trigger the backpressure callback.

Parameters:value (int) – The multiplier value to set