WANG 5 years ago
parent
commit
aa3601d9f0

+ 9 - 5
src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/ConcurrentTask.java

@@ -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
 			public void run() {
 				Util.sleep(inspectionPeriod);
+
 				while (true) {
 
 					int size = queue.size();
 					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
 					if (warnCount <= 100) {
 						if (100 < size && maxActiveThreadSize > activeCount) {
 							addWorkerThread(false);
 						}
-						Util.sleep(inspectionPeriod);
 					} else {
 						// 巡检周期内(因并发超出限制导致的)警告数量超过100时,减少一个worker,并重置警告数量
 						workerMessages.offer(warnCount);
 						workerController.resetWarnCount();
-						Util.sleep(inspectionPeriod * 10);
 					}
 
+					Util.sleep(inspectionPeriod);
 				}
+
 			};
 
 		};