ContainerBase - mua the game w88 o dau
Phần này thực ra 888bets đã được đề cập sơ lược khi nói về pool luồng trước đây. Điều chính xảy ra trong lớp org.apache.catalina.core.ContainerBase.ContainerBackgroundProcessor
.
112345678910111213141516171819202122232425262728293031323334353637383940414243
| ```
protected class ContainerBackgroundProcessor implements Runnable {
@Override
public void run() {
processChildren(ContainerBase.this);
}
protected void processChildren(Container container) {
ClassLoader originalClassLoader = null;
try {
if (container instanceof Context) {
Loader loader = ((Context) container).getLoader();
// Loader sẽ là null cho các trường hợp FailedContext
if (loader == null) {
return;
}
// Đảm bảo quá trình xử lý nền cho Contexts và Wrappers
// được thực hiện dưới lớp tải của ứng dụng web
originalClassLoader = ((Context) container).bind(false, null);
}
// Gọi phương thức backgroundProcess của Container
container.backgroundProcess();
// Sau đó tìm kiếm children
Container[] children = container.findChildren();
for (Container child : children) {
// Nếu backgroundProcessorDelay <= 0 thì gọi chạy
// Ngược lại đại diện cho một Container có StartChild như đã nói ở phần tám
if (child.getBackgroundProcessorDelay() <= 0) {
processChildren(child);
}
}
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
log.error(sm.getString("containerBase.backgroundProcess.error"), t);
} finally {
if (container instanceof Context) {
((Context) container).unbind(false, originalClassLoader);
}
}
}
}