Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 34045|Risposta: 6

[Fonte] .NET utilizza la cache Redis per le notifiche di scadenza

[Copiato link]
Pubblicato il 22-08-2020 10:34:59 | | | |
Quando si eseguono determinate operazioni a tempo, abbiamo bisogno di un feedback sui risultati. Ad esempio, gli ordini vengono automaticamente cancellati dopo la scadenza, gli ordini vengono automaticamente lodati dopo pochi giorni, gli ordini non pagati vengono chiusi dopo 15 minuti, ecc., che possono essere completati utilizzando alcuni framework di task a tempo o metodi di polling. Questo articolo utilizza il meccanismo avanzato di notifica degli eventi di scadenza della cache di Redis combinato con codice .NET/C# per soddisfare i requisiti aziendali.

Introduzione

Scenari di utilizzo: 1. Nel settore dei pagamenti, gli ordini non pagati vengono chiusi automaticamente 2. Promemoria di scadenza della cache

In generale, possiamo usare il servizio di temporizzazione per elaborare la chiusura automatica degli ordini non pagati, ad esempio chiamando l'interfaccia ogni minuto per processare ordini non pagati e scaduti, ma in questo caso consumerà le prestazioni del computer, anche se non c'è un ordine, verrà elaborato ogni minuto, e il ritardo massimo del tempo di elaborazione degli ordini sarà di 59 secondi, e il servizio di temporizzazione deve essere sempre disponibile

Quindi, cosa vogliamo fare? Solo quando ci sono ordini non pagati e scaduti con elaborazione a bassa latenza, possiamo usare il meccanismo di scadenza della cache di Redis per spingere l'abbonamento.

Abbonamento Redis

Modifica il notify-keyspace-events Ex nel file di configurazione redis.conf

Per risparmiare risorse della coppa, le notifiche degli eventi non sono attivate di default, e il valore predefinito è notify-keyspace-events

# Notifica di spazio tasti K, <db>prefissata con __keyspace@__
# Notifica di evento E key, <db>prefissata da __keysevent@__
# g del, expipre, riname e altri tipi di comandi generici, ...
# $string comando
# Comando l List
#s Comando impostato
# h Comando Hash
# Comando set ordinato z
# x Evento di scadenza (generato ogni volta che una chiave scade)
# Evento di sfratto (generato quando la chiave viene cancellata quando la memoria è piena)
# Un alias g$lshzxe, quindi "AKE" significa tutti gli eventi


Notify-keyspace-events "KX" indica che vuoi monitorare gli eventi di invalidazione per una chiave. Impostare il parametro sulla stringa AKE significa inviare tutti i tipi di notifiche.

Ho installato Redis come servizio sulla mia macchina, modificato il file di configurazione redis.windows.conf e ho dovuto riavviare la configurazione del servizio Redis per entrare in atto.

Esempio di codice .NET/C#

Il pacchetto è il seguente:



evocare



Proviamo a scrivere una cache con redis-cli.





Infatti, puoi anche abbonarti alle notifiche di scadenza della cache eseguendo il seguente comando tramite redis-cli:




Quando N client si abbonano alle notifiche di evento di scadenza della cache, Redis notificherà a N utenti lo stesso messaggio di scadenza, non solo a uno dei client, come mostrato nella figura sottostante:



Scarica codice sorgente in C#:

https://down.itsvse.com/item/17856.html

sommario

Redis pub/sub è un meccanismo di messaggi inaffidabile, non memorizza le informazioni, inoltra solo online, e sicuramente non esiste un meccanismo di conferma di ack, e solo il segmento in abbonamento viene inoltrato, quindi Keyspace Notifications è anche un sistema di notifiche inaffidabile; se la nostra azienda ha bisogno di una buona affidabilità, questa non è la scelta migliore. Generalmente, raccomandiamo DLX (Dead-Letter-Exchange) di RabbitMQ per implementarlo, che è la funzione delayed queue. È solo che la soluzione di Redis è più facile da implementare e meno costosa da gestire. È comunque molto comodo per le aziende che non richiedono un'alta affidabilità.




Precedente:.NET Core 3.1 Prompt Smart per l'installazione cinese
Prossimo:.NET non riceve l'assemblaggio completo dell'assembly di riferimento
Pubblicato il 29-08-2020 14:33:18 |
Impara a imparare
Pubblicato il 30-11-2021 13:16:47 |
Imparalo
Pubblicato il 30-11-2021 13:21:02 |
Redis pub/sub è un meccanismo di messaggi inaffidabile, non memorizza le informazioni, inoltra solo online, e sicuramente non esiste un meccanismo di conferma di ack, e solo il segmento in abbonamento viene inoltrato, quindi Keyspace Notifications è anche un sistema di notifiche inaffidabile; se la nostra azienda ha bisogno di una buona affidabilità, questa non è la scelta migliore. Generalmente, raccomandiamo DLX (Dead-Letter-Exchange) di RabbitMQ per implementarlo, che è la funzione delayed queue. È solo che la soluzione di Redis è più facile da implementare e meno costosa da gestire. È comunque molto comodo per le aziende che non richiedono un'alta affidabilità.
Pubblicato il 14-2-2022 17:42:43 |
Guarda, impara
Pubblicato il 2022-3-2 15:25:00 |
Imparalo
Pubblicato il 27-07-2022 16:40:13 |
Impara a imparare
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com