У меня есть несколько сложный объект в моем веб-приложении, это займет некоторое время, чтобы сделать все его атрибуты сериализуемыми, чтобы я мог вставить его в memcache.Memcache или только статический экземпляр на экземпляр приложения?
Есть ли смысл просто хранить его как статическую переменную в своем веб-приложении? Я не уверен, как статические переменные работают в приложении. Я имел в виду что-то вроде этого:
public class MyServlet {
private static SpaceShuttle mShuttle;
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException
{
// If the static instance isn't already around in this
// application instance, build it.
if (mShuttle == null) {
// Create it once.
mShuttle = complexProcessOfCreatingASpaceShuttle();
}
// Use it.
mShuttle.liftOff();
...
}
}
Я думаю, что Memcache будет полезно здесь, так как различные экземпляры приложения могли разделить тот же объект (я думаю?), Но как временное решение, по крайней мере экземпляры приложения могли поделиться статический экземпляр для времени жизни.
SpaceShuttle неизменен/доступен только для чтения, поэтому нет опасности синхронизации (я думаю?).
Много неизвестных здесь, не уверен, как работает двигатель приложения внутри. Должен ли я просто попробовать сделать сериализуемым все SpaceShuttle?
Благодаря
еще один комментарий - вы определенно хотите изучить настройки запросов на нагрев, чтобы ваш объект-челнок был создан до того, как какой-либо пользователь будет обслуживаться определенным экземпляром (http://code.google.com/appengine/docs/java/ config/appconfig.html # Warming_Requests) –
У меня возникла аналогичная проблема. Использование любой базы данных Lite не может быть и речи: http://stackoverflow.com/questions/4663071/a-read-only-relational-database-on-google-app-engine – speedplane