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