ServiceBusSender 클래스
ServiceBusSender 클래스는 Azure Service Bus 큐 또는 토픽으로 메시지를 보내기 위한 상위 수준 인터페이스를 정의합니다.
~azure.servicebus.ServiceBusClient의 메서드를 사용하여 get_<queue/topic>_sender
ServiceBusSender instance 만듭니다.
- 상속
-
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)
매개 변수
- fully_qualified_namespace
- str
Service Bus 네임스페이스의 정규화된 호스트 이름입니다. 네임스페이스 형식은 .servicebus.windows.net.
- credential
- TokenCredential 또는 AzureSasCredential 또는 AzureNamedKeyCredential
토큰을 가져오기 위한 특정 인터페이스를 구현하는 인증에 사용되는 자격 증명 개체입니다. azure-identity 라이브러리에서 생성된 자격 증명 개체와 *get_token(자체, 범위) 메서드를 구현하는 개체를 허용하거나 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 value) 및 'proxy_port'(int value) 키가 있는 사전이어야 합니다. 또한 'username', 'password' 키도 있을 수 있습니다.
- user_agent
- str
지정된 경우 기본 제공 사용자 에이전트 문자열 앞에 추가됩니다.
- client_identifier
- str
클라이언트 instance 고유하게 식별하는 문자열 기반 식별자입니다. 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 |
이전에 예약되어 있고 아직 보류 중인 하나 이상의 메시지를 취소합니다. |
close |
처리기 링크를 닫습니다(처리기가 별도의 연결을 사용하는 경우 연결). 처리기가 이미 닫힌 경우 이 작업은 아무 작업도 수행하지 않습니다. |
create_message_batch |
max_size_in_bytes 제한되는 모든 콘텐츠의 최대 크기를 사용하여 ServiceBusMessageBatch 개체를 만듭니다. max_size 서비스에서 정의한 최대 허용 메시지 크기보다 크지 않아야 합니다. |
schedule_messages |
특정 시간에 큐에 추가할 메시지 또는 여러 메시지를 보냅니다. 큐에 추가된 메시지의 시퀀스 번호 목록을 반환합니다. |
send_messages |
승인을 받거나 작업 시간이 초과될 때까지 메시지와 블록을 보냅니다. 메시지 목록이 제공된 경우 단일 일괄 처리로 보내려고 시도하여 단일 일괄 처리에 맞지 않는 경우 ValueError 를 throw합니다. |
cancel_scheduled_messages
이전에 예약되어 있고 아직 보류 중인 하나 이상의 메시지를 취소합니다.
cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
매개 변수
- timeout
- float
모든 재시도를 포함한 총 작업 시간 제한(초)입니다. 지정된 경우 값이 0보다 커야 합니다. 기본값은 없음이며 시간 제한이 없음을 의미합니다.
반환 형식
예외
예제
나중에 전송되도록 예약된 메시지 취소
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보다 커야 합니다. 기본값은 없음이며 시간 제한이 없음을 의미합니다.
반환
큐에 추가된 메시지의 시퀀스 번호 목록입니다.
반환 형식
예외
예제
나중에 보낼 메시지 예약
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
승인을 받거나 작업 시간이 초과될 때까지 메시지와 블록을 보냅니다.
메시지 목록이 제공된 경우 단일 일괄 처리로 보내려고 시도하여 단일 일괄 처리에 맞지 않는 경우 ValueError 를 throw합니다.
send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
매개 변수
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
보낼 ServiceBus 메시지입니다.
모든 재시도를 포함한 총 작업 시간 제한(초)입니다. 지정된 경우 값이 0보다 커야 합니다. 기본값은 없음이며 시간 제한이 없음을 의미합니다.
반환 형식
예외
예제
메시지를 보냅니다.
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
특성
client_identifier
Azure SDK for Python