На веб-сервере Java я хотел бы знать, есть ли какие-либо активные веб-запросы.
Моей первой идеей было что-то вроде:
public static AtomicInteger count = new AtomicInteger();
public void processRequest() {
count.incrementAndGet();
// process my request
count.decrementAndGet();
}
public boolean areThereActiveRequests() {
return 0 == count.get();
}
Очевидно, что веб-запросы блокируются (хотя и быстро) друг против друга, ожидая блокировки на count () при увеличении или уменьшении - что нам не нужно для хорошо масштабируемого сервера.
Обратите внимание, что могут быть проблемы с синхронизацией при любых вызовах кода areThereActiveRequests - возвращаемое значение может устареть к моменту его возврата - но это нормально для моих целей.
Есть идеи?