Синхронизация в App Engine - PullRequest
0 голосов
/ 14 июля 2011

Я создаю приложение с помощью Google App Engine.Приложение состоит из нескольких сервлетов, один из которых имеет статический объект-член, который содержит много внутреннего состояния.Несколько телефонов Android связываются с этим сервлетом, в результате чего сервлет обновляет состояние статического объекта-члена.Однако, когда несколько телефонов взаимодействуют с сервером одновременно, у меня возникают проблемы с синхронизацией, когда статический объект изменяется несколькими потоками одновременно.Я пытался добавить некоторые синхронизированные блоки, но это, похоже, не помогает.

Я думаю, причина в том, что App Engine порождает потоки для HTTP-запросов, но я не уверен.Какой стандартный способ синхронизации доступа к общим объектам в App Engine?Спасибо!

1 Ответ

2 голосов
/ 14 июля 2011

Ваше приложение GAE может быть запущено на разных серверах, может быть, и будет несколько экземпляров одновременно.Любой экземпляр может быть запущен или убит в любое время без предварительного уведомления.Итак, любое состояние в памяти бесполезно.

Вы должны использовать либо службу memcache, либо базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...