Redis
 sql >> Base de données >  >> NoSQL >> Redis

File d'attente de travaux avec redis utilisant BLPOP

Si vous utilisez BLPOP seul pour supprimer un message de la file d'attente et que votre consommateur de message ne parvient pas à le traiter, le message devra être remis en file d'attente, de peur qu'il ne disparaisse à jamais avec le consommateur défaillant.

Pour un traitement des messages plus durable, une liste des messages en cours de traitement doit être conservée afin qu'ils puissent être remis en file d'attente en cas d'échec.

[B]RPOPLPUSH est parfait pour ce scénario ; il peut extraire de manière atomique un message de la file d'attente des messages et le placer dans une file d'attente de traitement afin que l'application puisse répondre en cas de panne du côté du consommateur.

http://redis.io/commands/rpoplpush

La remise en file d'attente réelle est laissée à l'application, mais cette commande redis fournit les bases pour le faire.

Il existe également des implémentations sur place de files d'attente utilisant redis flottant sur le Web, telles que RestMQ [ http://www.restmq.com/ ]