use of com.jeesuite.common.async.StandardThreadExecutor in project jeesuite-libs by vakinge.
the class MNSConsumer method start.
private void start() {
CloudQueue queue = MNSClientInstance.createQueueIfAbsent(queueName);
initTopicHanlders();
fetchExecutor = new StandardThreadExecutor(1, 1, 0, TimeUnit.SECONDS, 1, new StandardThreadFactory("mns-Fetch-Executor"));
int maxThread = ResourceUtils.getInt("aliyun.mns.consumer.processThreads", 50);
semaphore = new Semaphore(maxThread);
defaultProcessExecutor = new StandardThreadExecutor(1, maxThread, 60, TimeUnit.SECONDS, 1, new StandardThreadFactory("mns-defaultProcess-Executor"));
fetchExecutor.submit(new Worker(queue));
logger.info("start work for queue Ok -> queue:{}", queue.getQueueURL());
}
use of com.jeesuite.common.async.StandardThreadExecutor in project jeesuite-libs by vakinge.
the class AbstractConsumer method startWorker.
protected void startWorker() {
// 异步处理拉取线程默认1
int fetchCoreThreads = 1;
int fetchMaxThreads = fetchCoreThreads;
// 异步处理
if (MQContext.isAsyncConsumeEnabled()) {
int maxThread = MQContext.getMaxProcessThreads();
semaphore = new Semaphore(maxThread);
this.asyncProcessExecutor = new StandardThreadExecutor(1, maxThread, 60, TimeUnit.SECONDS, maxThread, new StandardThreadFactory("messageAsyncProcessor"));
//
fetchMaxThreads = maxThread;
logger.info("init asyncProcessExecutor finish -> maxThread:{}", maxThread);
}
//
this.fetchExecutor = new StandardThreadExecutor(fetchCoreThreads, fetchMaxThreads, 0, TimeUnit.SECONDS, fetchMaxThreads * 10, new StandardThreadFactory("messageFetcher"));
fetchExecutor.execute(new Worker());
logger.info("init fetchExecutor finish -> fetchMaxThreads:{}", fetchMaxThreads);
}
Aggregations