|
@@ -46,7 +46,7 @@ public class ConcurrentTask<T> {
|
|
/**
|
|
/**
|
|
* 巡检周期
|
|
* 巡检周期
|
|
*/
|
|
*/
|
|
- private int inspectionPeriod = 60;
|
|
|
|
|
|
+ private int inspectionPeriod = 30;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 任务名称
|
|
* 任务名称
|
|
@@ -97,28 +97,32 @@ public class ConcurrentTask<T> {
|
|
@Override
|
|
@Override
|
|
public void run() {
|
|
public void run() {
|
|
Util.sleep(inspectionPeriod);
|
|
Util.sleep(inspectionPeriod);
|
|
|
|
+
|
|
while (true) {
|
|
while (true) {
|
|
|
|
|
|
int size = queue.size();
|
|
int size = queue.size();
|
|
int activeCount = threadPoolExecutor.getActiveCount();
|
|
int activeCount = threadPoolExecutor.getActiveCount();
|
|
|
|
+ int warnCount = workerController.getWarnCount();
|
|
|
|
|
|
- LOG.info("taskName [" + taskName + "]. activeCount = " + activeCount);
|
|
|
|
|
|
+ if (LOG.isInfoEnabled()) {
|
|
|
|
+ LOG.info("taskName [" + taskName + "]. activeCount = " + activeCount
|
|
|
|
+ + "; warnCount = " + warnCount);
|
|
|
|
+ }
|
|
|
|
|
|
- int warnCount = workerController.getWarnCount();
|
|
|
|
// 巡检周期内(因并发超出限制导致的)警告数量未超过100时,增加一个worker
|
|
// 巡检周期内(因并发超出限制导致的)警告数量未超过100时,增加一个worker
|
|
if (warnCount <= 100) {
|
|
if (warnCount <= 100) {
|
|
if (100 < size && maxActiveThreadSize > activeCount) {
|
|
if (100 < size && maxActiveThreadSize > activeCount) {
|
|
addWorkerThread(false);
|
|
addWorkerThread(false);
|
|
}
|
|
}
|
|
- Util.sleep(inspectionPeriod);
|
|
|
|
} else {
|
|
} else {
|
|
// 巡检周期内(因并发超出限制导致的)警告数量超过100时,减少一个worker,并重置警告数量
|
|
// 巡检周期内(因并发超出限制导致的)警告数量超过100时,减少一个worker,并重置警告数量
|
|
workerMessages.offer(warnCount);
|
|
workerMessages.offer(warnCount);
|
|
workerController.resetWarnCount();
|
|
workerController.resetWarnCount();
|
|
- Util.sleep(inspectionPeriod * 10);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Util.sleep(inspectionPeriod);
|
|
}
|
|
}
|
|
|
|
+
|
|
};
|
|
};
|
|
|
|
|
|
};
|
|
};
|