# Select Connection Adapter

A connection adapter that tries to use the best polling method for the platform pika is running on.

class `pika.adapters.select_connection.``SelectConnection`(parameters=None, on_open_callback=None, on_open_error_callback=None, on_close_callback=None, stop_ioloop_on_close=True, custom_ioloop=None)

  An asynchronous connection adapter that attempts to use the fastest event loop adapter for the given platform.

  `add_backpressure_callback`(callback_method)

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

    Parameters: | callback_method (method) – The method to call

  `add_on_close_callback`(callback_method)

    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)

    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)

    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)

    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)

    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)

    Add the callback_method to the IOLoop timer to fire after deadline seconds. Returns a handle to the timeout

    Parameters:

    - deadline (int) – The number of seconds to wait to call callback
    - callback_method (method) – The callback method

    Return type: | str

  `basic_nack`

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

    Return type: | bool

  `channel`(on_open_callback, channel_number=None)

    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')

    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`()

    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)

    Remove the timeout from the IOLoop by the ID returned from add_timeout.

    Return type: | str

  `set_backpressure_multiplier`(value=10)

    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