use of com.mendmix.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.mendmix.common.async.StandardThreadExecutor in project jeesuite-libs by vakinge.
the class RedisConsumerAdapter method start.
@Override
public void start() throws Exception {
int maxThread = MQContext.getMaxProcessThreads();
this.fetchExecutor = new ThreadPoolExecutor(1, 1, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new StandardThreadFactory("messageFetcher"));
this.asyncProcessExecutor = new StandardThreadExecutor(1, maxThread, 60, TimeUnit.SECONDS, 1000, new StandardThreadFactory("messageAsyncProcessor"));
container.setConnectionFactory(connectionFactory);
container.setSubscriptionExecutor(fetchExecutor);
container.setTaskExecutor(asyncProcessExecutor);
//
Set<String> topics = messageHandlers.keySet();
MessageListenerAdapter listener;
for (String topic : topics) {
MessageHandlerDelegate delegate = new MessageHandlerDelegate(topic, messageHandlers.get(topic));
listener = new MessageListenerAdapter(delegate, "onMessage");
listener.afterPropertiesSet();
container.addMessageListener(listener, new PatternTopic(topic));
}
container.afterPropertiesSet();
container.start();
}
use of com.mendmix.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