Переработка экземпляра приложения Механизма Приложения Google и время отклика

Я отправил это на GAE для группы Java, но я надеюсь получить некоторые ответы, здесь более быстрые :)

Я решил сделать некоторые отдаленные тесты производительности на своем приложении. Я создал некоторый маленький клиент, поражающий приложение каждые 5-30 минут, и я выполняю 3-5 из потоков с таким клиентом.

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

Неровное время отклика между соединением с сервером к первому отправленному байту

Экземпляры приложения, кажется, слишком настойчиво перерабатываются

Получение 'Запроса было прервано после ожидания слишком долго, чтобы попытаться обслужить Ваш запрос'. после неактивного приложения

Я использую Springframework, это tkes около 1820-х для запуска экземпляра приложения, который заставляет время отклика брать с 1 с (когда запросы поражают запущенное приложение - очень редкий) к 22, когда новое приложение создается.

Есть ли какое-либо решение для этого? Я думал о создании самого основного сервлета, выполняющего критические задачи (служащий вызову API) и отпуск UI, как. Но затем я освободил бы все преимущества Springframework.

Есть ли какое-либо решение для этого?

После решения многочисленного (взламывания) ограничивает Механизма Приложения, который я поразил при разработке моего приложения, которое является тем, которое я думаю, заставит меня переместиться из Механизма Приложения... это просто очень, чтобы все время думать, как победить с проблемами GAE, чем, как решить мои проблемы приложения...

Какая-либо справка?

Отношения Konrad

5
задан Peter Recore 12 January 2010 в 20:20
поделиться

5 ответов

У меня была та же проблема, и это решение не сработало, но работа заключалась в использовании html

$('#your_textarea_id').html('some_value');
-121--1796848-

Нет быстрого способа извлечения атрибутов. Но код должен выглядеть следующим образом (кредит Aaronaught ):

var t = typeof(YourClass);
var pi = t.GetProperty("Id");
var hasIsIdentity = Attribute.IsDefined(pi, typeof(IsIdentity));

Если вам нужно получить свойства атрибутов, то

var t = typeof(YourClass);
var pi = t.GetProperty("Id");
var attr = (IsIdentity[])pi.GetCustomAttributes(typeof(IsIdentity), false);
if (attr.Length > 0) {
    // Use attr[0], you'll need foreach on attr if MultiUse is true
}
-121--1822962-

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

Это быстро реализовать, но, похоже, идет вразрез с духом платформы. Сделайте свои номера и проверьте, стоит ли это того.

Другой вариант состоит в том, чтобы переформатировать ваше приложение, чтобы использовать больше ленивой нагрузки, чем в данный момент, так что это не занимает столько времени, чтобы начать.

Я не знаю, если у вас есть какой-либо другой вариант, кроме этих 2.

3
ответ дан 13 December 2019 в 22:08
поделиться

Вы пытались {{сообщение | Safe}} ?

в шаблоне шаблона шаблона Django всегда , если вы не указываете их в виде сейфа Safe . Это по умолчанию делает даже не знать о защите от инъекционной атаки.

Я не уверен, как это взаимодействует с Mark_Safe, но, возможно, что-то случилось между тем, что сделало его небезопасно.

-121--2047055-

Используйте новую функцию , функцию .

<!-- appengine-web.xml -->

<precompilation-enabled>true</precompilation-enabled>
3
ответ дан 13 December 2019 в 22:08
поделиться

Это определенно сложная проблема с Приложения AppEngine. Пуристы скажут вам посмотреть, почему ваша заявка занимает так много времени, чтобы начать и работать оттуда. В вашем случае ответ очевиден: вы используете весну, и он должен загрузить много классов файлов и создавать множество объектов.

Прагматичный ответ, если вы можете жить без весной, чтобы убедиться, что экземпляр приложения остается нагреваемым. Вы можете либо часто пинг от внешнего источника часто достаточно, чтобы AppEngine никогда не выгружает его, или вы можете использовать работу AppEngine Cron, которая часто работает, чтобы сохранить ваше приложение в памяти.

Я уверен, что Google презирает второй вариант, так как это бежит против большей части фундаментальных идей позади AE, но тем не менее, это вопрос, который они, и мы 9S AE Developers) должны учитывать.

Вот а обсуждение

0
ответ дан 13 December 2019 в 22:08
поделиться

на случай, если кто-то живет в стране AE и хочет быстрый и грязный keep-alive pinger, вот этот работает как шарм (windows):

http://www.coretechnologies.com/products/http-ping/

1
ответ дан 13 December 2019 в 22:08
поделиться

Что было бы хорошо, есть, что если бы мы могли сериализовать диспетчеров к мемкваче в мемкачу, а затем десертифицировать его из мемкали в холодное начало, если она там. Тогда экземпляр весны будет очень коротким.

DispatcherServlet уже помечен как Serializable , нам просто нужно найти способ сериализации объекта WebaplicationContext , который содержит диспетченер .

2
ответ дан 13 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: