Анонимный внутренний класс используется в следующем сценарии:
1.) Для переопределения (подкласс), когда определение класса не используется, кроме текущего случая:
class A{
public void methodA() {
System.out.println("methodA");
}
}
class B{
A a = new A() {
public void methodA() {
System.out.println("anonymous methodA");
}
};
}
2 .) Для реализации интерфейса, когда реализация интерфейса требуется только для текущего случая:
interface interfaceA{
public void methodA();
}
class B{
interfaceA a = new interfaceA() {
public void methodA() {
System.out.println("anonymous methodA implementer");
}
};
}
3.) Аргумент Определенный Анонимный внутренний класс:
interface Foo {
void methodFoo();
}
class B{
void do(Foo f) { }
}
class A{
void methodA() {
B b = new B();
b.do(new Foo() {
public void methodFoo() {
System.out.println("methodFoo");
}
});
}
}
Это все сделано с внешним веб-сервером, который слушает мир (я рекомендую nginx или lighttpd).
Относительно ограничений скорости, nginx в состоянии ограничить, т.е. 50 req/minute на каждый IP, на всем протяжении получают 503 страницы, которые можно настроить.
Относительно ожидаемого временного файла вниз, в мире направляющих это сделано через специальную страницу maintainance.html. Существует некоторая автоматизация, которая создает или символьные ссылки, что файл, когда серверы приложений направляющих понижаются. Я рекомендовал бы положиться не на присутствие файла, а на фактическую доступность сервера приложений.
, Но действительно Вы в состоянии запустить/остановить сервисы, не теряя соединений вообще. Т.е. можно выполнить отдельный экземпляр сервера приложений на другом порте сокета/IP UNIX и иметь стабилизатор (nginx/lighty/haproxy) использование что новый экземпляр также. Тогда Вы закрываете старый экземпляр, и все клиенты обслуживаются только с новым. Никакая потеря соединения. Конечно, этот сценарий не всегда возможен, зависит от типа изменения, которое Вы представили в новой версии.
haproxy является решением только для стабилизатора. Это может чрезвычайно эффективно сбалансировать запросы к серверам приложений в Вашей ферме.
Для довольно большого сервиса Вы заканчиваете с чем-то как:
Для довольно маленького сервиса (при 2K RPS) вся балансировка сделана в одном-двух веб-серверах.
Я рекомендовал бы реализовать ограничения скорости за пределами Вашего приложения с тех пор иначе, интенсивный трафик будет все еще иметь эффект уничтожения Вашего приложения. Одно хорошее решение состоит в том, чтобы реализовать его как часть Вашего апачского прокси с чем-то как mod_evasive
python manage.py test polls.tests
не зарегистрированныйpython manage.py test polls
– Dylan Pierce 31 January 2016 в 11:01