Кто-нибудь пытался реализовать пессимистическую блокировку на GAE? В моем проекте есть некоторые задачи, которые должны быть взаимоисключающими. Я сделал это с помощью:GAE пессимистическая блокировка на CloudSQL
javax.persistence.EntityManager.find(entityClass, primaryKey, LockModeType.PESSIMISTIC_READ);
который запрашивает БД с помощью SELECT FOR UPDATE и которая работает хорошо ... до тех пор, пока есть только одна заявка экземпляр, который обрабатывает запросы. Если бы было больше случаев, мои запросы обрабатывались бы частично одновременно.
Я испытал это, добавив спать 10 секунд внутри моего взаимоисключающего метода. В одном случае 6 запросов обрабатывались примерно через 60 секунд, но для 3-х экземпляров иногда 20 иногда 30, но не 60 секунд.
Означает ли это, что CloudSQL не реплицирует блокировки среди экземпляров SQL? Есть ли другой способ реализовать пессимистическую блокировку в строке таблицы?
Br Marek
Большое вам спасибо за ваш быстрый ответ. Я думаю, теперь мне нужно изменить свою реализацию на более оптимистичную, что немного хуже в моем случае, но, вероятно, у меня нет выбора :) –