ServiceBusSender 클래스

ServiceBusSender 클래스는 Azure Service Bus 큐 또는 토픽으로 메시지를 보내기 위한 상위 수준 인터페이스를 정의합니다.

~azure.servicebus.ServiceBusClient의 메서드를 사용하여 get_<queue/topic>_sender ServiceBusSender instance 만듭니다.

상속
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(자체, 범위) 메서드를 구현하는 개체를 허용하거나 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

매개 변수

sequence_numbers
int 또는 list[int]
필수

예약된 메시지의 시퀀스 번호입니다.

timeout
float

모든 재시도를 포함한 총 작업 시간 제한(초)입니다. 지정된 경우 값이 0보다 커야 합니다. 기본값은 없음이며 시간 제한이 없음을 의미합니다.

반환 형식

예외

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보다 커야 합니다. 기본값은 없음이며 시간 제한이 없음을 의미합니다.

반환

큐에 추가된 메시지의 시퀀스 번호 목록입니다.

반환 형식

예외

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

승인을 받거나 작업 시간이 초과될 때까지 메시지와 블록을 보냅니다.

메시지 목록이 제공된 경우 단일 일괄 처리로 보내려고 시도하여 단일 일괄 처리에 맞지 않는 경우 ValueError 를 throw합니다.

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

매개 변수

timeout
Optional[float]

모든 재시도를 포함한 총 작업 시간 제한(초)입니다. 지정된 경우 값이 0보다 커야 합니다. 기본값은 없음이며 시간 제한이 없음을 의미합니다.

반환 형식

예외

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

예제

메시지를 보냅니다.


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

특성

client_identifier

보낸 사람 instance 연결된 ServiceBusSender client_identifier 가져옵니다.

반환 형식

str