Как сделать блокировку ресурса в асинхронном приложении?
Есть сервис на tonado и postgres.
Торнадо получает данные, забирает данные из базы, обрабатывает их, и пишет в базу. Пусть данные будут неким "количеством". Которое всегда ограничено. И не должно уходить в минус.
Проблема в том... что данные очень чувствительные. Уже сейчас, когда я нагружал приложение "количество" уходило в минус. Предвижу еще больше проблем, когда сервис будет запущен на продакшене - инстансов в 16.
Как сделать механизм запирания? Что бы пока один запрос не закончит свои действия, другие не могли читать? И при этом не скатиться с ситуации, когда 16 пользователей положат сервис?