Я имею дело с проблемой, когда пользователь может обновить документ в течение указанного срока, а если нет, то сервер будет.Работа с параллельными запросами в Meteor
Обновление включает в себя увеличение значения и добавление объекта в массив документа. Мне нужно убедиться, что только один из пользователей/серверов обновляет документ. Не оба.
Для обеспечения этого выполните некоторые проверки, чтобы проверить, был ли документ уже обновлен, но есть моменты, когда пользователь и сервер работают в одно и то же время, и оба передают проверки, а затем документ обновляется дважды ,
Я пробовал много разных способов исправить это, но я не смог. Я попытался реализовать блокировку, подобную этой: http://en.wikipedia.org/wiki/Peterson%27s_algorithm, чтобы убедиться, что произойдет только одно обновление, а второе обновление не удастся, но я не был успешным. Есть идеи?
не могли бы вы предоставить свой текущий код, чтобы мы могли на нем основываться? –
Возможно, вы захотите взглянуть на пакет collection2, который поддерживает перехваты, как before.update. Но это поможет понять, как вы делаете это сейчас, поэтому ответы могут быть более подходящими для вашего дела. – mark