2017-05-23 4 views
1

Je souhaite définir l'heure d'expiration de redis pub/sub messages en cours de publication. Comment puis-je le faire dans nodeJS?Possibilité de définir l'heure d'expiration d'un pub/sous-message redis

var redis = require('redis'); 

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

Le code pour afficher un message est ci-dessus. Quels sont les changements que je dois faire pour définir l'heure d'expiration du message publié?

Répondre

1

Les messages publiés dans Redis ne sont en aucun cas conservés, ils n'ont donc pas de date d'expiration.

Une autre conséquence de ceci est que s'il n'y a aucun abonné pour un message particulier, le message est perdu.

2

Chaque message expire immédiatement et vous ne pouvez pas le modifier. Pour le faire fonctionner différemment, il faudrait ajouter un cache des messages, les conserver pendant un certain temps après leur publication et les rediffuser à tout abonné qui se serait abonné après qu'ils aient déjà été publiés.

Ce n'est pas comme ça que fonctionne PubSub dans Redis. Vous pouvez penser à cela comme quelque chose de similaire aux événements. Les écouteurs d'événements peuvent écouter les événements et les émetteurs d'événements peuvent émettre des événements. Mais il n'y a pas de notion de temps d'expiration d'un événement. Certains écouteurs l'écoutent pendant qu'il est émis ou non. La même chose est vraie pour les éditeurs et les abonnés.