Как сделать, чтобы работала блокировка для большого количества запросов?
Здравствуйте. Дело в том, что я использую сокеты. И почти в одно и то же время, допустим, в 20 часов и 0 минут, у всех пользователей скрипт отправляет запрос на сокет сервер. Отправляя этот запрос, у меня есть цель: выполнить нужное мне событие (1.1) один раз, и вернуть всем результаты. Но у меня не совсем получается.
Я делаю так: когда приходит запрос от пользователя я проверяю, был ли запрос раньше, и если не было, помечаю в базе, что запрос только что произошел. Дальше, если еще кто-то шлет запрос, то уже видно, что запрос уже произошел, и текущий клиент ждет выполнения нужного мне события (1.1). Проблема состоит в том, что иногда Node.JS не успевает выполнить запрос к базе, и за это время, пока идёт запрос, успевает "проскочить" несколько клиентов и нужно мне события (1.1) выполняется столько раз, сколько пользователей проскочило, плюс тот пользователь, что инициировал первый запрос.
Как быть? Может есть какой-то алгоритм? Уже голову сломал.
Ну при получении результата я и бросаю. Проблема в том, что от пользователей приходят запросы на получение результатов события и если результатов не было, событие начинает выполняться, и пока в базе помечается, что событие начинает выполняться, в этот момент два пользователя проскакивают и события может выполнится несколько раз.