Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Fila de trabalhos com redis usando BLPOP


Se você usar o BLPOP sozinho para remover uma mensagem da fila e seu consumidor de mensagem não conseguir processá-la, a mensagem terá que ser enfileirada novamente, para que não desapareça para sempre junto com o consumidor com falha.

Para um processamento de mensagens mais durável, uma lista de mensagens processadas deve ser mantida para que possam ser reenfileiradas em caso de falha.

[B]RPOPLPUSH é perfeito para este cenário; ele pode remover atomicamente uma mensagem da fila de mensagens e enviá-la por push para uma fila de processamento para que o aplicativo possa responder no caso de uma falha do lado do consumidor.

http://redis.io/commands/rpoplpush

O reenfileiramento real é deixado para o aplicativo, mas esse comando redis fornece as bases para isso.

Existem também algumas implementações drop-in-place de filas usando redis flutuando pela web, como RestMQ [ http://www.restmq.com/ ]