Pub/Sub-Themen
Note
Diese Funktion ist auch in verfügbar NCache Professional.
A Thema enthält die Nachricht selbst sowie zusätzliche Abonnenten- und Herausgeberinformationen. Das ITopic/Topic
Schnittstelle erleichtert ein Thema erstellen, Legen Sie die Themenpriorität während der Erstellung fest, ein Thema bekommen, löschen Sie ein Thema einfach und asynchron.
Voraussetzungen:
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: ICache, CacheItem, IThema, Thema erstellen, GetThema, Thema löschen, ThemaPriorität, LöschenTopicAsync.
Neues Thema
Thema erstellen Die Methode erstellt im Cache ein Thema mit einem angegebenen Namen. Wenn das Thema bereits vorhanden ist, wird eine Instanz des Themas zurückgegeben als ITopic
. Immer wenn eine Nachricht zu einem Thema veröffentlicht wird, wird sie basierend auf der Nachrichtenpräferenz an Abonnenten zugestellt, die für dieses Thema registriert sind. Das folgende Beispiel erstellt ein Thema Bestellthema.
// Precondition: Cache is already connected
// Mention the name of the topic
string topicName = "orderTopic";
// Create the topic
ITopic topic = cache.MessagingService.CreateTopic(topicName);
Note
Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
Thema mit Priorität erstellen
Note
Diese Funktion ist nur verfügbar in NCache 5.2 und weiter.
NCache ermöglicht Ihnen die Einstellung Themenpriorität um die Zustellung kritischer Nachrichten zu priorisieren. Die Priorität wird mit angegeben TopicPriority
Eigentum als Low
, Normal
und High
. Wenn die Räumung aktiviert ist, werden die Themen mit der geringsten Priorität zuerst und die mit der hohen Priorität zuletzt geräumt. Themen, die ohne Angabe einer Priorität erstellt wurden, werden mit der Standardpriorität erstellt, z. B. „Normal“.
Wichtig
Die Priorität eines Themas kann nur zum Zeitpunkt der Themenerstellung angegeben und anschließend nicht geändert werden.
Das folgende Beispiel erstellt ein Thema: Bestellthema, mit der höchsten Priorität, um eine vorzeitige Räumung zu vermeiden (sofern die Räumung aktiviert ist).
// 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);
Thema erhalten
GetThema Die Methode ruft eine Instanz des angegebenen Themas aus dem Cache ab. Wenn das Thema vorhanden ist, wird es zurückgegeben, andernfalls wird eine Ausnahme ausgelöst. Das folgende Beispiel ruft ein vorhandenes Thema ab Bestellthema aus dem Cache.
// 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
}
Thema löschen
Thema löschen Die Methode hebt die Registrierung des Themas aus dem Cache auf und entfernt alle mit diesem Thema verknüpften Nachrichten. Falls registriert, ein Rückruf zum Löschen des Themas OnTopicDeleted
wird bei diesem Methodenaufruf ausgelöst.
Das folgende Beispiel löscht das vorhandene Thema Bestellthema aus dem Cache und entfernt alle mit diesem Thema verknüpften Nachrichten. Wenn die OnTopicDeleted
Callback registriert ist, wird er bei diesem Methodenaufruf ausgelöst.
// Define the topic to be deleted
string topicName = "orderTopic";
// Delete the topic "orderTopic"
cache.MessagingService.DeleteTopic(topicName);
// Callback will be triggered if registered
Thema asynchron löschen
LöschenTopicAsync Die Methode löscht das Thema asynchron. Immer wenn ein Thema asynchron gelöscht wird, Task
wird an den Benutzer zurückgegeben, damit er weitere Aufgaben ausführen kann, ohne auf das Löschen des Themas warten zu müssen. Das folgende Beispiel zeigt das asynchrone Löschen des Themas 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
Eigenschaften der ITopic-Schnittstelle
Mitglieder | Typ | Beschreibung |
---|---|---|
MessageDeliveryFailure |
MessageDeliveryFailureCallback |
Ereignis zum Thema, damit der Herausgeber alle fehlgeschlagenen Nachrichten erhält, die keinem Abonnenten zugestellt wurden oder Nachrichten abgelaufen sind oder vor der Zustellung entfernt wurden. |
Name |
string |
Name des Themas, das während der Themenerstellung angegeben wurde. |
OnTopicDeleted |
TopicDeletedCallback |
Ereignis zur Handhabung der Themenlöschung durch Herausgeber und Abonnenten. |
ExpirationTime |
TimeSpan |
Wenn der Ablauf auf Nachrichtenebene nicht angegeben ist, dann läuft dieser Ablauf auf Themenebene Nachrichten im Thema standardmäßig ab. Der Wert ist TimeSpan.MaxValue standardmäßig. |
IsClosed |
bool |
Prüfen Sie, ob das Thema entsorgt ist, bevor Sie irgendwelche Operationen durchführen. |
Dispose |
IDisposable |
Entfernt das Abonnement des registrierten Themas vom Cache-Server. |
Weitere Informationen
NCache stellt eine Beispielanwendung für Pub/Sub bereit GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Runtime.Caching Namespace.
Java: com.alachisoft.ncache.runtime.caching Namespace.
Node.js: Betreff Klasse.
Python: ncache.Kundenservice Klasse.