SendClient Class
An AMQP client for sending messages.
- Inheritance
-
SendClient
Constructor
SendClient(target, auth=None, client_name=None, debug=False, msg_timeout=0, error_policy=None, keep_alive_interval=None, **kwargs)
Parameters
The target AMQP service endpoint. This can either be the URI as a string or a ~uamqp.address.Target object.
- auth
- AMQPAuth
Authentication for the connection. This should be one of the subclasses of uamqp.authentication.AMQPAuth. Currently this includes:
uamqp.authentication.SASLAnonymous
uamqp.authentication.SASLPlain
uamqp.authentication.SASTokenAuth
uamqp.authentication.JWTTokenAuth
If no authentication is supplied, SASLAnnoymous will be used by default.
The name for the client, also known as the Container ID. If no name is provided, a random GUID will be used.
- debug
- bool
Whether to turn on network trace logs. If True, trace logs will be logged at INFO level. Default is False.
- msg_timeout
- int
A timeout in milliseconds for messages from when they have been added to the send queue to when the message is actually sent. This prevents potentially expired data from being sent. If set to 0, messages will not expire. Default is 0.
- error_policy
- ErrorPolicy
A policy for parsing errors on link, connection and message disposition to determine whether the error should be retryable.
- keep_alive_interval
- int
If set, a thread will be started to keep the connection alive during periods of user inactivity. The value will determine how long the thread will sleep (in seconds) between pinging the connection. If 0 or None, no thread will be started.
- send_settle_mode
- SenderSettleMode
The mode by which to settle message send operations. If set to Unsettled, the client will wait for a confirmation from the service that the message was successfully sent. If set to 'Settled', the client will not wait for confirmation and assume success.
- receive_settle_mode
- ReceiverSettleMode
The mode by which to settle message receive operations. If set to PeekLock, the receiver will lock a message once received until the client accepts or rejects the message. If set to ReceiveAndDelete, the service will assume successful receipt of the message and clear it from the queue. The default is PeekLock.
- desired_capabilities
- AMQPValue
The extension capabilities desired from the peer endpoint. To create a desired_capabilities object, please do as follows:
-
- Create an array of desired capability symbols: capabilities_symbol_array = [types.AMQPSymbol(string)]
-
- Transform the array to AMQPValue object: utils.data_factory(types.AMQPArray(capabilities_symbol_array))
- link_credit
- int
The sender Link credit that determines how many messages the Link will attempt to handle per connection iteration.
- idle_timeout
- int
Timeout in milliseconds after which the Connection will close if there is no further activity.
- remote_idle_timeout_empty_frame_send_ratio
- float
Ratio of empty frames to idle time for Connections with no activity. Value must be between 0.0 and 1.0 inclusive. Default is 0.5.
- on_attach
- <xref:func>[Source, Target, dict, AMQPConnectionError]
A callback function to be run on receipt of an ATTACH frame. The function must take 4 arguments: source, target, properties and error.
Methods
| messages_pending |
Check whether the client is holding any unsent messages in the queue. |
| queue_message |
Add one or more messages to the send queue. No further action will be taken until either SendClient.wait() or SendClient.send_all_messages() has been called. The client does not need to be open yet for messages to be added to the queue. Multiple messages can be queued at once:
|
| redirect |
Redirect the client endpoint using a Link DETACH redirect response. |
| send_all_messages |
Send all pending messages in the queue. This will return a list of the send result of all the pending messages so it can be determined if any messages failed to send. This function will open the client if it is not already open. |
| send_message |
Send a single message or batched message. |
| wait |
Run the client until all pending message in the queue have been processed. Returns whether the client is still running after the messages have been processed, or whether a shutdown has been initiated. |
messages_pending
Check whether the client is holding any unsent messages in the queue.
messages_pending()
Return type
queue_message
Add one or more messages to the send queue. No further action will be taken until either SendClient.wait() or SendClient.send_all_messages() has been called. The client does not need to be open yet for messages to be added to the queue. Multiple messages can be queued at once:
send_client.queue_message(my_message)
send_client.queue_message(message_1, message_2, message_3)
*send_client.queue_message(my_message_list)
queue_message(*messages)
Parameters
- messages
A message to send. This can either be a single instance of Message, or multiple messages wrapped in an instance of BatchMessage.
redirect
Redirect the client endpoint using a Link DETACH redirect response.
redirect(redirect, auth)
Parameters
send_all_messages
Send all pending messages in the queue. This will return a list of the send result of all the pending messages so it can be determined if any messages failed to send. This function will open the client if it is not already open.
send_all_messages(close_on_done=True)
Parameters
- close_on_done
- bool
Close the client once the messages are sent. Default is True.
Return type
send_message
Send a single message or batched message.
send_message(messages, close_on_done=False)
Parameters
- messages
A message to send. This can either be a single instance of Message, or multiple messages wrapped in an instance of BatchMessage.
- close_on_done
- bool
Close the client once the message is sent. Default is False.
Exceptions
wait
Run the client until all pending message in the queue have been processed. Returns whether the client is still running after the messages have been processed, or whether a shutdown has been initiated.
wait()
Return type
Attributes
pending_messages
Feedback
Submit and view feedback for