Sujets Pub/Sub
A sujet contient le message lui-même, ainsi que des informations supplémentaires sur l'abonné et l'éditeur. La ITopic/Topic
l'interface dans Pub/Sub facilite créer un sujet, définir la priorité du sujet lors de la création, obtenir un sujet, supprimer un sujet simplement ainsi que de manière asynchrone.
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Pré-requis
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, y compris Pub/Sub, veuillez vous référer à la page indiquée sur Prérequis de l'API côté client.
- Pour plus de détails sur l'API, reportez-vous à : ICache, CacheItem, ISujet, Créer un sujet, Obtenir le sujet, Supprimer le sujet, SujetPriorité, Supprimer le sujet asynchrone.
Créez votre sujet
Créer un sujet La méthode crée un sujet dans le cache avec un nom spécifié. Si le sujet existe déjà, une instance du sujet est renvoyée sous la forme ITopic
. Chaque fois qu'un message est publié sur un sujet, il est transmis en fonction des préférences de message aux abonnés inscrits sur ce sujet. L'exemple suivant crée un sujet commanderTopic.
// Precondition: Cache is already connected
// Mention the name of the topic
string topicName = "orderTopic";
// Create the topic
ITopic topic = cache.MessagingService.CreateTopic(topicName);
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Créer un sujet avec priorité
Notes
Cette fonctionnalité est uniquement disponible dans NCache 5.2 et suivants.
NCache Pub/Sub vous permet de définir priorité du sujet prioriser la transmission des messages critiques. La priorité est spécifiée à l'aide du TopicPriority
propriété comme Low
, Normal
et High
. Si l'expulsion est activée, les sujets ayant la moindre priorité sont expulsés en premier, et ceux ayant la priorité élevée sont expulsés en dernier. Les sujets créés sans priorité spécifiée seront créés avec la priorité par défaut, c'est-à-dire Normale.
Important
La priorité d'un sujet peut être spécifiée uniquement au moment de la création du sujet et ne peut pas être modifiée par la suite.
L'exemple suivant crée un sujet, commanderTopic, avec une priorité aussi élevée pour éviter l'éviction anticipée (si l'éviction est activée).
// 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);
Obtenir le sujet
Obtenir le sujet La méthode récupère une instance du sujet spécifié à partir du cache. Si le sujet existe, il est renvoyé, sinon une exception est levée. L'exemple suivant obtient un sujet existant commanderTopic de la cachette.
// 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
}
Supprimer le sujet
Supprimer le sujet La méthode désenregistre le sujet du cache et supprime tous les messages associés à ce sujet. Si inscrit, un rappel de suppression de sujet OnTopicDeleted
sera déclenché lors de cet appel de méthode.
L'exemple suivant supprime le sujet existant commanderTopic du cache et supprime tous les messages associés à ce sujet. Si la OnTopicDeleted
callback est enregistré, il sera déclenché lors de cet appel de méthode.
// Define the topic to be deleted
string topicName = "orderTopic";
// Delete the topic "orderTopic"
cache.MessagingService.DeleteTopic(topicName);
// Callback will be triggered if registered
Supprimer le sujet de manière asynchrone
Supprimer le sujet asynchrone La méthode supprime le sujet de manière asynchrone. Chaque fois qu'un sujet est supprimé de manière asynchrone, Task
est renvoyé à l'utilisateur pour qu'il puisse effectuer d'autres tâches sans attendre la suppression du sujet. L'exemple suivant montre la suppression asynchrone du sujet 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
Propriétés de l'interface ITopic
Membres | Type | Description |
---|---|---|
MessageDeliveryFailure |
MessageDeliveryFailureCallback |
Événement sur le sujet afin que l'éditeur reçoive tous les messages ayant échoué qui ne sont transmis à aucun abonné ou peut-être que les messages sont expirés ou expulsés avant la livraison. |
Name |
string |
Nom du sujet spécifié lors de la création du sujet. |
OnTopicDeleted |
TopicDeletedCallback |
Événement pour gérer la suppression du sujet par l'éditeur et l'abonné. |
ExpirationTime |
TimeSpan |
Si l'expiration au niveau du message n'est pas fournie, cette expiration au niveau de la rubrique fait expirer les messages dans la rubrique par défaut. La valeur est TimeSpan.MaxValue par défaut. |
IsClosed |
bool |
Vérifiez si le sujet est supprimé, avant d'effectuer toute opération. |
Dispose |
IDisposable |
Supprime l'abonnement au sujet enregistré du serveur de cache. |
Ressources additionnelles
NCache fournit un exemple d'application pour Pub/Sub sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Runtime.Caching espace de noms.
Java: com.alachisoft.ncache.runtime.caching espace de noms.
Node.js : Sujet classe.
python: ncache.services clients classe.