2017-05-23 1 views
1

Ich möchte Ablaufzeit für Redis Pub/Sub-Nachrichten während der Veröffentlichung festlegen. Wie mache ich es in NodeJS?Kann Ablaufzeit für eine Redis Pub/Sub-Nachricht festlegen

var redis = require('redis'); 

redis.createClient().publish('some channel', 'some message', function(err) { 
    if (err) { 
    console.error('error publishing:', err); 
    } 
}); 

Der Code zum Erstellen einer Nachricht ist oben. Welche Änderungen muss ich machen, um die Verfallszeit für die veröffentlichte Nachricht festzulegen?

Antwort

1

Veröffentlichte Nachrichten in Redis bleiben in keiner Weise erhalten, daher haben sie keine Ablaufzeit.

Eine weitere Konsequenz daraus ist, dass, wenn keine Abonnenten für eine bestimmte Nachricht vorhanden sind, die Nachricht verloren geht.

2

Jede Nachricht läuft sofort ab und Sie können sie nicht ändern. Um es anders funktionieren zu lassen, würde es erforderlich sein, einen Cache der Nachrichten hinzuzufügen, diese für eine bestimmte Zeit nach ihrer Veröffentlichung zu behalten und sie an jeden Abonnenten, der sich angemeldet hat, nachdem sie bereits veröffentlicht wurden, erneut zu senden.

So funktioniert PubSub in Redis nicht. Sie können es als etwas ähnlich zu Ereignissen denken. Ereignis-Listener können auf Evets hören und Ereignis-Emitter können Ereignisse ausgeben. Aber es gibt keine Vorstellung von der Ablaufzeit eines Ereignisses. Manche Zuhörer hören sie entweder ab, während sie ausgestrahlt werden oder nicht. Das Gleiche gilt für Verleger und Abonnenten.

Verwandte Themen