Argomenti Pub/Sub
A Argomento contiene il messaggio stesso, insieme a informazioni aggiuntive sull'abbonato e sull'editore. Il ITopic/Topic l'interfaccia in Pub/Sub facilita creazione di un argomento, Impostazione della priorità dell'argomento durante la creazione, recupero di un argomento, eliminazione sincrona di un argomento or in modo asincrono.
Prerequisiti
Prima di usare il NCache Per le API lato client, assicurarsi che siano soddisfatti i seguenti prerequisiti:
- Installa i seguenti pacchetti NuGet nella tua applicazione client .NET:
- Impresa: Alachisoft.NCache.Sdk
- Open Source: Alachisoft.NCache.SDK open source
- Includere i seguenti spazi dei nomi nell'applicazione:
- La cache deve essere in esecuzione.
- Assicurati che i dati aggiunti lo siano serializzabile.
- Per i dettagli dell'API, fare riferimento a: ICache, CacheItem, Argomento, Crea argomento, GetTopic, Elimina argomento, Priorità argomento, EliminaargomentoAsync, Servizio di messaggistica.
Come creare un argomento Pub/Sub in NCache
Migliori Crea argomento il metodo crea un Argomento nella cache con un nome specificato. Se l'Argomento esiste già, viene restituita un'istanza dell'Argomento come ITopicOgni volta che un messaggio viene pubblicato su un argomento, viene recapitato in base alle preferenze degli iscritti registrati su quell'argomento. L'esempio seguente crea un argomento. ordineArgomento.
try
{
// Precondition: Cache is already connected
// Mention the name of the Topic
string topicName = "orderTopic";
// Create the Topic
ITopic topic = cache.MessagingService.CreateTopic(topicName);
}
catch (OperationFailedException ex)
{
// Exception can occur due to:
// Connection Failures
// Operation Timeout
// Operation performed during state transfer
}
catch (Exception ex)
{
// Any other generic exception like ArgumentNullException or ArgumentException
// Topic name is null/empty
}
Note:
Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.
Crea argomento con priorità
Note:
Questa funzione è disponibile solo in NCache Dal 5.2 in poi.
NCache Pub/Sub consente di impostare Priorità dell'argomento dare priorità alla consegna dei messaggi critici. La priorità viene specificata utilizzando il file TopicPriority proprietà come Low, Normale HighSe l'eliminazione è abilitata, gli argomenti con la priorità più bassa vengono eliminati per primi, mentre gli argomenti con la priorità più alta vengono eliminati per ultimi. Gli argomenti creati senza priorità specificata verranno creati con la priorità predefinita, ovvero Normale. L'esempio seguente crea un argomento, ordineArgomento, con priorità alta per evitare lo sfratto anticipato (se lo sfratto è abilitato).
Consigli
La priorità di un argomento può essere specificata solo al momento della creazione dell'argomento e non può essere modificata in seguito.
// Precondition: Cache is already connected
// 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);
Ottieni argomento
Migliori GetTopic Il metodo recupera un'istanza dell'argomento specificato dalla cache. Se l'argomento esiste, viene restituito; altrimenti, viene restituito null. L'esempio seguente recupera un argomento esistente ordineArgomento dalla cache.
// Precondition: Cache is already connected
// 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
}
Elimina argomento
Migliori Elimina argomento Il metodo annulla la registrazione dell'argomento dalla cache e rimuove tutti i messaggi associati a tale argomento. Se registrato, viene eseguita una callback di eliminazione dell'argomento OnTopicDeleted verrà attivato su questa chiamata di metodo. Il seguente esempio elimina l'argomento esistente ordineArgomento dalla cache e rimuove tutti i messaggi associati a quell'argomento. Se il OnTopicDeleted callback è registrato, verrà attivato su questa chiamata al metodo.
// Precondition: Cache is already connected
// Define the Topic to be deleted
string topicName = "orderTopic";
// Delete the Topic "orderTopic"
cache.MessagingService.DeleteTopic(topicName);
// Callback will be triggered if registered
Elimina argomento in modo asincrono
Migliori EliminaargomentoAsync metodo elimina l'argomento in modo asincrono. Ogni volta che un argomento viene eliminato in modo asincrono, un Task viene restituito all'utente per eseguire ulteriori attività senza attendere che l'argomento venga eliminato. L'esempio seguente mostra l'eliminazione asincrona dell'argomento ordineArgomento.
// Precondition: Cache is already connected
// 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
Proprietà dell'interfaccia ITopic
| Utenti | Tipo | Descrizione |
|---|---|---|
MessageDeliveryFailure |
MessageDeliveryFailureCallback |
Evento sull'argomento in modo che l'editore riceva tutti i messaggi non recapitati che non sono stati recapitati ad alcun abbonato o che potrebbero essere scaduti o eliminati prima della consegna. |
Name |
string |
Nome dell'argomento specificato durante la creazione dell'argomento. |
OnTopicDeleted |
TopicDeletedCallback |
Evento per gestire l'eliminazione dell'argomento da parte dell'editore e dell'abbonato. |
ExpirationTime |
TimeSpan |
Se non viene fornita la scadenza a livello di messaggio, questa scadenza a livello di argomento fa scadere i messaggi nell'argomento per impostazione predefinita. Il valore è TimeSpan.MaxValue per impostazione predefinita. |
IsClosed |
bool |
Prima di eseguire qualsiasi operazione, verificare che l'argomento sia stato eliminato. |
Dispose |
IDisposable |
Rimuove l'abbonamento dell'argomento registrato dal server cache. |
Risorse addizionali
NCache fornisce un'applicazione di esempio per Pub/Sub su GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.Memorizzazione.della.cache spazio dei nomi.
Giava: com.alachisoft.ncache.runtime.caching pacchetto.
Pitone: servizi.ncache.client modulo.
Node.js: Argomento classe.