Estoy construyendo un sistema de colas que pasa un mensaje de un proceso a otro a través de una pila implementada en mongodb con capped_collections y cursores disponibles.Pregunta sobre mongodb capped collections + tailable cursores
La recepción procesa bucles buscando infinitamente documentos nuevos en capped_collection, y cuando encuentra uno, realiza una operación.
Mi pregunta es, si implemento múltiples procesos de recepción ¿hay alguna forma de garantizar que un documento nuevo solo se leerá una vez mediante uno de los procesos utilizando un cursor de disponibilidad? El objetivo es evitar que la operación se realice dos veces si hay dos procesos de recepción buscando nuevos mensajes en la cola. Soy relativamente nuevo en la programación de mongodb, así que sigo sintiendo todas sus características.
La pregunta se trataba de garantizar que dos cursores competentes no recibieran el mismo mensaje. No veo cómo esto tiene algo que ver con las actualizaciones atómicas o el enlace de documentación que proporcionó – mysomic
¿Ha votado negativamente porque no entiende la respuesta * aceptada? Quizás * usted * no entiende cómo usar las actualizaciones atómicas para "evitar que la operación se realice dos veces", pero la persona que hizo la pregunta claramente lo hizo. Bonito. –
Entiendo la pregunta y su respuesta. Las actualizaciones atómicas no * "garantizan que un documento nuevo solo se leerá una vez mediante uno de los procesos que utilizan un cursor disponible" * en el sentido de que ambos consumidores ** ** recibirán el mismo documento. Cómo se coordinan después de que ambos reciban un documento de cola duplicado es otro asunto completamente diferente y tal vez las actualizaciones atómicas podrían estar involucradas de alguna manera. El hecho de que es la respuesta aceptada es irrelevante para que sea la correcta. – mysomic