GAE / J: среда разработки и производства - PullRequest
3 голосов
/ 02 февраля 2011

Каковы основные различия GAE / J между средами разработки и производства.

  • Что должно быть перепроверено при изготовлении?
  • Каких различий в хранилищах данных мне следует ожидать?

Ответы [ 4 ]

7 голосов
/ 02 февраля 2011
  • Среда разработки однопоточная
  • Нет запроса на тайм-аут
  • Нет взрывающийся индекс , infact dev env вообще не использует индексы для запросов
  • Нет асинхронного URLFetch
  • Нет асинхронного хранилища данных
  • Очевидно, что нет запросов статистики / интерфейс поиска журнала
  • Нет времени ожидания для построения индекса
  • Нет таймаутов хранилища данных
  • Нет уменьшенных возможностей
1 голос
/ 13 февраля 2012

Помимо упомянутых выше я обнаружил еще одно отличие. В среде разработки вы можете хранить несериализуемые классы и объекты в атрибутах сеанса. Но будьте осторожны, чтобы хранить только сериализуемые классы на производстве в атрибутах сеанса, иначе вы получите исключение.

1 голос
/ 02 февраля 2011

Существует много различий между средой разработки и производства, и вы должны знать обо всех из них, прежде чем разрабатывать свое приложение; бесполезно говорить, что сервер разработки является «игрушкой» (без индексов, однопоточным) по сравнению со сложностью / удивительностью распределенной производственной среды.

Вот некоторые проблемы, которые вы можете найти только в производственной среде:

  1. Сроки (30 секунд для запросов, 10 минут для очереди задач, 10 секунд максимум для Urlfetch)
  2. Конфликт при обновлении сущностей
  3. Объект слишком больших исключений при попытке сохранить или передать что-то слишком большое
  4. Переходные ошибки для распределенного характера среды (тайм-ауты)

Как правило, каждый раз, когда в API задокументировано ограничение (квота времени ожидания), то же ограничение в среде разработки ослабляется; будьте готовы написать много защитного кода.

Viceversa, сервер разработки, даже включающий Sqlite, имеет серьезные ограничения при попытке сохранить / обновить тысячи объектов; Производственный сервер это мощный зверь.

1 голос
/ 02 февраля 2011

Производительность на dev (понятно) абсолютно не имеет отношения к производству. Холодный запуск не является проблемой в процессе разработки.

Хранение особенно больших объемов данных на сервере разработки может стать проблематичным, и вам, возможно, придется переключить хранилище данных сервера разработки на sqlite.

Отправка электронной почты с использованием javamail не проверяется при разработке.

API-интерфейсы oauth и users реализованы лишь минимально при разработке.

Задания Cron не выполняются при разработке и должны запускаться вручную.

Я почти уверен, что проблема с взрывающимися индексами не будет кусать вас в процессе разработки, это забавная ошибка, с которой можно столкнуться после загрузки в производство.

У меня был совершенно приемлемый код JDO, который запускается на уровне разработки в производственной среде (persistall ()). Сохранение каждого объекта в отдельности затем работает.

Всего несколько вещей из моего опыта, я уверен, что есть и другие.

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