Так что вопрос длинный, но довольно понятный. У меня есть приложение, которое работает на нескольких серверах, которое использует параллельные циклы для обработки объектов, поступающих из коллекции MongoDB. Так как MongoDB вынуждает меня разрешить множественный доступ для чтения, я не могу помешать нескольким процессам и / или серверам получать один и тот же документ из коллекции и дублировать работу.
Программа такова, что приложение ожидает появления информации, выполняет определенную работу, чтобы выяснить, что с ней делать, а затем удаляет ее после завершения. Я надеюсь добиться того, чтобы, если бы я мог предотвратить одновременный доступ к документам, зная, что после того, как один из них будет прочитан, он в конечном итоге будет удален, я смогу в целом немного увеличить пропускную способность, уменьшив количество дубликатов и позволяя приложения для захвата вещей, которые не работают.
Я не думаю, что пессимист - это то, что я ищу, но, возможно, я неправильно понял концепцию. Также, если для решения той же проблемы используются альтернативные настройки, я бы хотел услышать, что может быть использовано.
Спасибо!