Предельный Доступ К Spring Контроллер MVC — N сессии за один раз

Просто позвольте объекту StringBuilder выйти из области видимости (в закрывающей фигурной скобке) и не загромождайте свой код ненужными операторами, пытаясь заставить сборщик мусора выполнять свою работу быстрее. Когда объект StringBuilder выходит из области видимости, он становится пригодным для сборки мусора. Держите ваш исходный код в чистоте.

6
задан Anthony 21 December 2008 в 23:35
поделиться

3 ответа

То, в чем Вы нуждаетесь, является ObjectPool. Apache выезда Пул палаты общин http://commons.apache.org/pool

При запуске приложения необходимо создать Пул объектов с лицензиями или объектами коммерческой библиотеки (Не уверенный, какой открытый интерфейс они имеют).

public class CommercialObjectFactory extends BasePoolableObjectFactory { 
    // for makeObject we'll simply return a new commercial object
    @Override
    public Object makeObject() { 
        return new CommercialObject(); 
    } 
}

GenericObjectPool pool = new GenericObjectPool(new CommercialObjectFactory());

// The size of pool in our case it is N
pool.setMaxActive(N) 
// We want to wait if the pool is exhausted
pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK) 

И когда Вам нужен коммерческий объект в Вашем коде.

CommercialObject obj = null;
try { 
    obj = (CommercialObject)pool.borrowObject();

    // use the commerical object the way you to use it.
    // ....

} finally { 
    // be nice return the borrwed object
    try {
        if(obj != null) {
            pool.returnObject(obj);
        }
    } catch(Exception e) {
        // ignored
    }
} 

Если это не будет тем, что Вы хотите затем, то необходимо будет обеспечить больше детали о коммерческой библиотеке.

7
ответ дан 10 December 2019 в 00:45
поделиться

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

0
ответ дан 10 December 2019 в 00:45
поделиться

Spring имеет org.springframework.aop.interceptor. ConcurrencyThrottleInterceptor, который может использоваться через AOP (или базовый код может использоваться автономный). Это могло бы быть более легким подходом веса, чем использование пула объектов.

3
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

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