sql >> Database >  >> NoSQL >> Redis

Opdrachtwachtrij met redis met BLPOP

Als u alleen BLPOP gebruikt om een ​​bericht uit de wachtrij te verwijderen en uw berichtconsument het niet kan verwerken, moet het bericht opnieuw in de wachtrij worden geplaatst, zodat het niet samen met de mislukte consument voor altijd verdwijnt.

Voor een duurzamere verwerking van berichten moet een lijst met berichten die worden verwerkt, worden bijgehouden, zodat ze in het geval van een storing opnieuw in de wachtrij kunnen worden geplaatst.

[B]RPOPPLUSH is perfect voor dit scenario; het kan atomair een bericht uit de berichtenwachtrij halen en het naar een verwerkingswachtrij duwen zodat de toepassing kan reageren in het geval van een storing aan de kant van de consument.

http://redis.io/commands/rpoplpush

Het daadwerkelijk opnieuw in de wachtrij plaatsen wordt overgelaten aan de toepassing, maar deze redis-opdracht biedt de basis om dit te doen.

Er zijn ook enkele drop-in-place-implementaties van wachtrijen met behulp van redis die rondzweven op het web, zoals RestMQ [ http://www.restmq.com/ ]




  1. Wat is de juiste manier om een ​​mongod-service op linux / OS X te starten?

  2. Kan geen verbinding maken met mongodb via machine ip

  3. Mongodb C#-stuurprogramma retourneert alleen overeenkomende subdocumenten in array

  4. Is het Mongodb Aggregation-framework sneller dan kaart/verkleinen?