ma collection MongoDB est utilisée comme file d'attente, et 3 machines C++ lisent à partir de cette collection. Le problème est que ces trois ne peuvent pas effectuer le même travail. Tous les travaux doivent être effectués une seule fois.MongoDB findAndModify à partir de plusieurs clients
Je récupère tous les travaux non terminés en recherchant dans la collection tous les enregistrements avec 'isDone: False', puis je mets à jour ce document 'isDone: True'. Mais si deux machines trouvent le même document en même temps, elles le feront toutes les deux. Comment puis-je éviter ça?
Modifier: Ma question est - est-ce que findAndModify résout vraiment ce problème? (Après avoir lu A way to ensure exclusive reads in MongoDb's findAndModify?)
Je suis confus au sujet de votre question.Le point entier de 'findAnyModify' est qu'il trouve et modifie atomiquement un document en une seule opération, évitant ainsi ce problème. – JohnnyHK
Je me demande si c'est vraiment après avoir vu http://stackoverflow.com/questions/15505176/a-way-to-ensure-exclusive-reads-in-mongodbs-findandmodify –
@EiTkoCaT http://stackoverflow.com/a/15539348/829571 – assylias