ServiceBusSender クラス
ServiceBusSender クラスは、Azure Service Bus キューまたはトピックにメッセージを送信するための高レベルのインターフェイスを定義します。
~azure.servicebus.ServiceBusClient のメソッドを使用 get_<queue/topic>_sender
して、ServiceBusSender インスタンスを作成してください。
- 継承
-
azure.servicebus._base_handler.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
コンストラクター
ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
パラメーター
- 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
パラメーター
- timeout
- float
すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。
の戻り値の型 :
例外
例
今後送信される予定のメッセージの取り消し
with servicebus_sender:
servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
ハンドラー リンクを閉じます (ハンドラーが別の接続を使用している場合は 接続)。
ハンドラーが既に閉じている場合、この操作は何も行わない。
close() -> None
の戻り値の型 :
例外
create_message_batch
max_size_in_bytesによって制限されているすべてのコンテンツの最大サイズを持つ ServiceBusMessageBatch オブジェクトを作成します。 max_sizeは、サービスによって定義された最大許容メッセージ サイズを超えてはなりません。
create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
パラメーター
ServiceBusMessageBatch オブジェクトが保持できるバイト データの最大サイズ。 既定では、この値は Service Bus レベルによって決まります。
戻り値
ServiceBusMessageBatch オブジェクト
の戻り値の型 :
例外
例
制限されたサイズ内に 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]]]
スケジュールするメッセージまたはメッセージの一覧。
- timeout
- float
すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。
戻り値
エンキューされたメッセージのシーケンス番号のリスト。
の戻り値の型 :
例外
例
メッセージを今後送信するようにスケジュールする
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 メッセージ。
すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。
の戻り値の型 :
例外
例
メッセージを送信します。
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
属性
client_identifier
Azure SDK for Python