вторник, 22 сентября 2009 г.

glassfish thread pool

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


для начала необходимо его создать, через веб консоль администрирования и дать ему имя:
Configuration -> Thread Pools -> New


использовать так:
...
import com.sun.enterprise.connectors.ConnectorRuntimeException;
import com.sun.enterprise.connectors.work.WorkManagerFactory;
import javax.resource.spi.work.Work;
import javax.resource.spi.work.WorkException;
import javax.resource.spi.work.WorkManager;
...
    try {
        WorkManager workManager = WorkManagerFactory.getWorkManager("threadpoolname");
        Work work = new Work() {
            @Override
            public void release() {
//вызывается если необходимо остановить тред
            }
 
            @Override
            public void run() {
//код, который надо распараллелить
            }
        };
        workManager.scheduleWork(work);
    } catch (WorkException e) {
//что-то сделать
} catch (ConnectorRuntimeException e) {
//что-то сделать
...
}
и не забудьте подключить библиотеку glassfish_dir/lib/appserv-rt.jar

Комментариев нет:

Отправить комментарий