Artnt
Новичок
Добрый день.
Нужна помощь в решение следующей проблемы.
Есть приложение, серверная часть которого во время своей работы использует memcached и mySQL.
Соответственно в memcached и mySQL имеется поля value, flag
value = 1000 - число которое нужно изменить
flag = false - флаг показывает было ли изменено число
Во время запроса к серверу выполняются следующие действия:
Проверяется поле flag
Если значение в нем равно false, то элементу value (в memcached и в mySQL) прибавляется некоторое число к примеру 100. Далее полю flag присваивается значение true (чтобы нельзя было вызвать это действие повторно).
Если запросы приходят с интервалом в 1-2 секунды, то все работает нормально.
Однако если в 1 секунду приходит 300-400 запросов, то value увеличивается не на 100, а на 30 000 - 40 000. Видимо это происходит из-за задержки обмена данными между php с memcached и mySQL - запросы на чтение данных обрабатываются быстрее чем на запись.
Подскажите как можно на сервере предупредить такую ситуацию. Что бы данные в таблицу записывались только 1 раз.
Нужна помощь в решение следующей проблемы.
Есть приложение, серверная часть которого во время своей работы использует memcached и mySQL.
Соответственно в memcached и mySQL имеется поля value, flag
value = 1000 - число которое нужно изменить
flag = false - флаг показывает было ли изменено число
Во время запроса к серверу выполняются следующие действия:
Проверяется поле flag
Если значение в нем равно false, то элементу value (в memcached и в mySQL) прибавляется некоторое число к примеру 100. Далее полю flag присваивается значение true (чтобы нельзя было вызвать это действие повторно).
Если запросы приходят с интервалом в 1-2 секунды, то все работает нормально.
Однако если в 1 секунду приходит 300-400 запросов, то value увеличивается не на 100, а на 30 000 - 40 000. Видимо это происходит из-за задержки обмена данными между php с memcached и mySQL - запросы на чтение данных обрабатываются быстрее чем на запись.
Подскажите как можно на сервере предупредить такую ситуацию. Что бы данные в таблицу записывались только 1 раз.