ServiceBusSender クラス

ServiceBusSender クラスは、Azure Service Bus キューまたはトピックにメッセージを送信するための高レベルのインターフェイスを定義します。

~azure.servicebus.ServiceBusClient のメソッドを使用 get_<queue/topic>_sender して、ServiceBusSender インスタンスを作成してください。

継承
azure.servicebus._base_handler.BaseHandler
ServiceBusSender
azure.servicebus._servicebus_sender.SenderMixin
ServiceBusSender

コンストラクター

ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)

パラメーター

fully_qualified_namespace
str
必須

Service Bus 名前空間の完全修飾ホスト名。 名前空間の形式は .servicebus.windows.net です。

credential
TokenCredential または AzureSasCredential または AzureNamedKeyCredential
必須

トークンを取得するための特定のインターフェイスを実装する認証に使用される資格情報オブジェクト。 azure-identity ライブラリによって生成された資格情報オブジェクトと、*get_token(self, scopes) メソッドを実装するオブジェクトを受け入れます。または、AzureSasCredential も指定できます。

queue_name
str

クライアントが接続する特定の Service Bus キューのパス。

topic_name
str

クライアントが接続する特定の Service Bus トピックのパス。

logging_enable
bool

ネットワーク トレース ログをロガーに出力するかどうか。 既定値は False です。

transport_type
TransportType

Service Bus サービスとの通信に使用されるトランスポート プロトコルの種類。 既定値は TransportType.Amqp です

http_proxy
Dict

HTTP プロキシ設定。 これは、 'proxy_hostname' (str 値) と ' proxy_port' (int 値) のキーを持つディクショナリである必要があります。 さらに、次のキーが存在する場合もあります: 'username'、'password'

user_agent
str

指定した場合、これは組み込みのユーザー エージェント文字列の前に追加されます。

client_identifier
str

クライアント インスタンスを一意に識別するための文字列ベースの識別子。 Service Bus は、エラーの関連付けを容易にするために、いくつかのエラー メッセージに関連付けます。 指定しない場合は、一意の ID が生成されます。

socket_timeout
float

接続の基になるソケットが、データの送受信時にタイムアウトするまで待機する時間 (秒単位)。既定値は、TransportType.Amqp の場合は 0.2、TransportType.AmqpOverWebsocket の場合は 1 です。 書き込みタイムアウトが原因で接続エラーが発生している場合は、既定値より大きい値を渡す必要がある場合があります。

変数

fully_qualified_namespace
str

Service Bus 名前空間の完全修飾ホスト名。 名前空間の形式は .servicebus.windows.net です。

entity_name
str

クライアントが接続するエンティティの名前。

メソッド

cancel_scheduled_messages

以前にスケジュールされていて、まだ保留中のメッセージを 1 つ以上取り消します。

close

ハンドラー リンクを閉じます (ハンドラーが別の接続を使用している場合は 接続)。

ハンドラーが既に閉じている場合、この操作は何も行わない。

create_message_batch

max_size_in_bytesによって制限されているすべてのコンテンツの最大サイズを持つ ServiceBusMessageBatch オブジェクトを作成します。 max_sizeは、サービスによって定義された最大許容メッセージ サイズを超えてはなりません。

schedule_messages

特定の時刻にエンキューされるメッセージまたは複数のメッセージを送信します。 エンキューされたメッセージのシーケンス番号の一覧を返します。

send_messages

受信確認が受信されるか、操作がタイムアウトするまで、メッセージとブロックを送信します。

メッセージの一覧が指定された場合、メッセージを 1 つのバッチとして送信し、1 つのバッチに収まらない場合は ValueError をスローします。

cancel_scheduled_messages

以前にスケジュールされていて、まだ保留中のメッセージを 1 つ以上取り消します。

cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None

パラメーター

sequence_numbers
int または list[int]
必須

スケジュールされたメッセージのシーケンス番号。

timeout
float

すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。

の戻り値の型 :

例外

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

今後送信される予定のメッセージの取り消し


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

ハンドラー リンクを閉じます (ハンドラーが別の接続を使用している場合は 接続)。

ハンドラーが既に閉じている場合、この操作は何も行わない。

close() -> None

の戻り値の型 :

例外

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

create_message_batch

max_size_in_bytesによって制限されているすべてのコンテンツの最大サイズを持つ ServiceBusMessageBatch オブジェクトを作成します。 max_sizeは、サービスによって定義された最大許容メッセージ サイズを超えてはなりません。

create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch

パラメーター

max_size_in_bytes
Optional[int]
既定値: None

ServiceBusMessageBatch オブジェクトが保持できるバイト データの最大サイズ。 既定では、この値は Service Bus レベルによって決まります。

戻り値

ServiceBusMessageBatch オブジェクト

の戻り値の型 :

例外

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

制限されたサイズ内に ServiceBusMessageBatch オブジェクトを作成する


   with servicebus_sender:
       batch_message = servicebus_sender.create_message_batch()
       batch_message.add_message(ServiceBusMessage("Single message inside batch"))

schedule_messages

特定の時刻にエンキューされるメッセージまたは複数のメッセージを送信します。 エンキューされたメッセージのシーケンス番号の一覧を返します。

schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]

パラメーター

messages
Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
必須

スケジュールするメッセージまたはメッセージの一覧。

schedule_time_utc
datetime
必須

メッセージをエンキューする utc 日時。

timeout
float

すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。

戻り値

エンキューされたメッセージのシーケンス番号のリスト。

の戻り値の型 :

例外

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

メッセージを今後送信するようにスケジュールする


   with servicebus_sender:
       scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
       scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
       sequence_nums = servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)

send_messages

受信確認が受信されるか、操作がタイムアウトするまで、メッセージとブロックを送信します。

メッセージの一覧が指定された場合、メッセージを 1 つのバッチとして送信し、1 つのバッチに収まらない場合は ValueError をスローします。

send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None

パラメーター

message
Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
必須

送信する ServiceBus メッセージ。

timeout
Optional[float]

すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。

の戻り値の型 :

例外

azure.servicebus.exceptions.OperationTimeoutError if sending times out.

メッセージを送信します。


   with servicebus_sender:
       message_send = ServiceBusMessage("Hello World")
       servicebus_sender.send_messages(message_send)

属性

client_identifier

送信者インスタンスに関連付けられている ServiceBusSender client_identifierを取得します。

の戻り値の型 :

str