Задать вопрос
@Nwton

Как правильно сохранять mongoose документ в данном случае?

Пусть есть документ с числовым параметром. И на сервер льются запросы на изменение этого параметра (n+1 или n-1) по несколько в секунду.

Допустим, мы получили 2 запроса почти одновременно и 2 раза запустили функцию обработки. Функция достает документ, подставляет новое число и сохраняет. Но из-за асинхронности и задержки в выполнении скрипта, может выйти так, что когда #2 запрос уже обработан и документ сохранен, #1 еще в процессе и после его завершения мы потеряем результат обработки запроса #2. Как решить эту проблему?

Как вариант, создавать для каждого запроса новый специальный документ, а затем раз в минуту обрабатывать их все синхронно, сохранять результат в основной документ и удалять специальные. Есть другие способы?
  • Вопрос задан
  • 275 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@de1m
В таком случае надо делать очередь, когда приходят два запроса, то последний встаёт в очередь и ждёт пока первый полностью выполнится(пошлёт свой статус клиенту) и лишь после этого начинает работать второй.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы