ServiceBusSender クラス
ServiceBusSender クラスは、Azure Service Bus キューまたはトピックにメッセージを送信するための高度なインターフェイスを定義します。
~azure.servicebus.aio.ServiceBusClient のメソッドを使用 get_<queue/topic>_sender
して、ServiceBusSender インスタンスを作成してください。
- 継承
-
azure.servicebus.aio._base_handler_async.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
コンストラクター
ServiceBusSender(fully_qualified_namespace: str, credential: AsyncTokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
パラメーター
- credential
- AsyncTokenCredential または AzureSasCredential または AzureNamedKeyCredential
トークンを取得するための特定のインターフェイスを実装する認証に使用される資格情報オブジェクト。 azure-identity ライブラリによって生成された資格情報オブジェクトと、*get_token(self, scopes) メソッドを実装するオブジェクトを受け入れます。または、AzureSasCredential も指定できます。
- queue_name
- str
クライアントが接続する特定の Service Bus キューのパス。 queue_nameまたはtopic_nameの 1 つだけを指定できます。
- topic_name
- str
クライアントが接続する特定の Service Bus トピックのパス。 queue_nameまたはtopic_nameの 1 つだけを指定できます。
- 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 つ以上のメッセージを取り消します。
async cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
パラメーター
- timeout
- float
すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。
の戻り値の型 :
例外
例
今後送信される予定のメッセージの取り消し
async with servicebus_sender:
await servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
ハンドラー接続を閉じます。
ハンドラーが既に閉じている場合、この操作は何も行いません。 オプションの例外を渡して、エラーが原因でハンドラーがシャットダウンされたことを示すことができます。
async close() -> None
の戻り値の型 :
例外
create_message_batch
max_size_in_bytesによって制約されているすべてのコンテンツの最大サイズを持つ ServiceBusMessageBatch オブジェクトを作成します。 max_sizeは、サービスによって定義された最大許容メッセージ サイズを超えてはなりません。
async create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
パラメーター
ServiceBusMessageBatch オブジェクトが保持できるバイト データの最大サイズ。 既定では、この値は Service Bus レベルによって決定されます。
戻り値
ServiceBusMessageBatch オブジェクト
の戻り値の型 :
例外
例
制限されたサイズ内で ServiceBusMessageBatch オブジェクトを作成する
async with servicebus_sender:
batch_message = await servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
サービスによって特定の時刻にエンキューされるメッセージまたは複数のメッセージを送信します。 エンキューされたメッセージのシーケンス番号の一覧を返します。
async schedule_messages(messages: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage], schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]
パラメーター
- messages
- Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
スケジュールするメッセージまたはメッセージの一覧。
- timeout
- float
すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。
戻り値
エンキューされたメッセージのシーケンス番号。
の戻り値の型 :
例外
例
メッセージを今後送信するようにスケジュールする
async with servicebus_sender:
scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
sequence_nums = await servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)
send_messages
受信確認が受信されるか、操作がタイムアウトするまで、メッセージとブロックを送信します。
メッセージの一覧が指定されている場合は、1 つのバッチとして送信を試み、1 つのバッチに収まらない場合は ValueError をスローします。
async send_messages(message: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage] | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
パラメーター
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
送信する ServiceBus メッセージ。
すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。
の戻り値の型 :
例外
例
メッセージを送信します。
async with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
await servicebus_sender.send_messages(message_send)
属性
client_identifier
Azure SDK for Python