게시/구독 주제
A 화제 추가 구독자 및 게시자 정보와 함께 메시지 자체를 포함합니다. 그만큼 ITopic/Topic
Pub/Sub의 인터페이스는 주제를 만들다, 생성하는 동안 주제 우선 순위 설정, 주제를 얻다, 단순히 주제를 삭제 와 비동기 적으로.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
사전 조건
주제 만들기
주제 만들기 메서드는 지정된 이름으로 캐시에 주제를 생성합니다. 주제가 이미 존재하는 경우 주제의 인스턴스가 다음과 같이 반환됩니다. ITopic
. 특정 주제에 대한 메시지가 게시될 때마다 해당 주제에 등록된 구독자의 메시지 기본 설정에 따라 전달됩니다. 다음 예시에서는 주제를 생성합니다. 주문주제.
// Precondition: Cache is already connected
// Mention the name of the topic
string topicName = "orderTopic";
// Create the topic
ITopic topic = cache.MessagingService.CreateTopic(topicName);
주의 사항
작업이 안전하도록 하려면 에 설명된 대로 응용 프로그램 내에서 잠재적인 예외를 처리하는 것이 좋습니다. 처리 실패.
우선순위가 있는 주제 만들기
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. NCache 5.2 이상.
NCache Pub/Sub를 사용하면 다음을 설정할 수 있습니다. 주제 우선순위 중요한 메시지 전달의 우선순위를 정합니다. 우선순위는 다음을 사용하여 지정됩니다. TopicPriority
재산 Low
, Normal
및 High
. 제거가 활성화된 경우 우선순위가 가장 낮은 항목이 먼저 제거되고 우선순위가 높은 항목이 마지막으로 제거됩니다. 우선순위를 지정하지 않고 생성된 주제는 기본 우선순위, 즉 보통으로 생성됩니다.
중대한
주제의 우선순위는 주제 생성 시에만 지정할 수 있으며 이후에는 수정할 수 없습니다.
다음 예는 주제를 생성합니다. 주문주제, 조기 퇴거를 피하기 위해 우선 순위가 높습니다(제거가 활성화된 경우).
// Mention the name of the topic
string topicName = "orderTopic";
// Create the topic with priority
ITopic topic = cache.MessagingService.CreateTopic(topicName, Alachisoft.NCache.Runtime.Messaging.TopicPriority.High);
주제 가져오기
주제 가져오기 메소드는 캐시에서 지정된 주제의 인스턴스를 가져옵니다. 주제가 있으면 반환되고, 그렇지 않으면 예외가 throw됩니다. 다음 예는 기존 주제를 가져옵니다. 주문주제 캐시에서.
// Mention the name of the topic
string topicName = "orderTopic";
// Get the topic from the cache
ITopic orderTopic = cache.MessagingService.GetTopic(topicName);
// Verify successful topic retrieval
if (orderTopic != null)
{
// orderTopic will be used for receiving and/or publishing messages
}
else
{
// No topic exists
}
주제 삭제
주제 삭제 메서드는 캐시에서 주제 등록을 취소하고 해당 주제와 관련된 모든 메시지를 제거합니다. 등록된 경우 주제 삭제 콜백 OnTopicDeleted
이 메서드 호출 시 트리거됩니다.
다음 예는 기존 주제를 삭제합니다. 주문주제 캐시에서 해당 주제와 관련된 모든 메시지를 제거합니다. 만약 OnTopicDeleted
콜백이 등록되면 이 메서드 호출 시 트리거됩니다.
// Define the topic to be deleted
string topicName = "orderTopic";
// Delete the topic "orderTopic"
cache.MessagingService.DeleteTopic(topicName);
// Callback will be triggered if registered
비동기식으로 주제 삭제
주제비동기화 삭제 메서드는 주제를 비동기식으로 삭제합니다. 주제가 비동기식으로 삭제될 때마다 Task
주제가 삭제될 때까지 기다리지 않고 추가 작업을 수행하기 위해 사용자에게 반환됩니다. 다음 예에서는 주제의 비동기 삭제를 보여줍니다. orderTopic
.
// Define the topic to be deleted
string topicName = "orderTopic";
// Delete the topic "orderTopic"
Task task = cache.MessagingService.DeleteTopicAsync(topicName);
// Use task to perform further operations according to business logic
// Callback will be triggered if registered
ITopic 인터페이스의 속성
회원 | 타입 | 상품 설명 |
---|---|---|
MessageDeliveryFailure |
MessageDeliveryFailureCallback |
게시자가 구독자에게 전달되지 않은 모든 실패한 메시지를 받거나 메시지가 전달되기 전에 만료되거나 제거되도록 하는 주제에 대한 이벤트입니다. |
Name |
string |
주제 생성 중에 지정된 주제의 이름입니다. |
OnTopicDeleted |
TopicDeletedCallback |
게시자 및 구독자별 주제 삭제를 처리하는 이벤트입니다. |
ExpirationTime |
TimeSpan |
메시지 수준 만료가 제공되지 않으면 이 주제 수준 만료로 인해 기본적으로 주제의 메시지가 만료됩니다. 값은 TimeSpan.MaxValue 기본적으로 |
IsClosed |
bool |
작업을 수행하기 전에 토픽이 삭제되었는지 확인하십시오. |
Dispose |
IDisposable |
캐시 서버에서 등록된 주제의 구독을 제거합니다. |
추가 자료
NCache Pub/Sub용 샘플 애플리케이션 제공 GitHub의.
도 참조
.그물: Alachisoft.NCache.런타임.캐싱 네임 스페이스.
자바 : COM.alachisoft.ncache.런타임.캐싱 네임 스페이스.
Node.js : 주제 클래스입니다.
파이썬 : ncache.클라이언트.서비스 클래스입니다.