use of com.jeesuite.common.async.StandardThreadExecutor.StandardThreadFactory in project jeesuite-libs by vakinge.
the class CosProviderServiceFacade method afterPropertiesSet.
@Override
public void afterPropertiesSet() throws Exception {
//
if (defaultBucket == null) {
defaultBucket = ResourceUtils.getProperty("cos.defaultBucket");
}
if (type == null) {
type = ResourceUtils.getAndValidateProperty("cos.provider");
}
if (config == null) {
config = new CosProviderConfig();
config.setAccessKey(ResourceUtils.getProperty("cos.accessKey"));
config.setSecretKey(ResourceUtils.getProperty("cos.secretKey"));
config.setAppId(ResourceUtils.getProperty("cos.appId"));
config.setRegionName(ResourceUtils.getProperty("cos.regionName"));
config.setMaxConnectionsCount(ResourceUtils.getInt("cos.maxConnections", 200));
}
if (AliyunProvider.NAME.equals(type)) {
provider = new AliyunProvider(config);
} else if (QcloudProvider.NAME.equals(type)) {
provider = new QcloudProvider(config);
} else if (QiniuProvider.NAME.equals(type)) {
provider = new QiniuProvider(config);
} else {
throw new JeesuiteBaseException("cos[" + type + "] not support");
}
if (defaultBucket != null) {
BucketConfig bucketConfig = provider.getBucketConfig(defaultBucket);
bucketConfig.setUrlPrefix(ResourceUtils.getProperty("cos.defaultUrlPrefix"));
((AbstractProvider) provider).addBucketConfig(bucketConfig);
} else {
Map<String, String> urlPrefixMappings = ResourceUtils.getMappingValues("cos.bucket.urlPrefix.mapping");
if (urlPrefixMappings != null) {
urlPrefixMappings.forEach((bucket, urlPrefix) -> {
BucketConfig bucketConfig = provider.getBucketConfig(defaultBucket);
bucketConfig.setUrlPrefix(ResourceUtils.getProperty("cos.defaultUrlPrefix"));
((AbstractProvider) provider).addBucketConfig(bucketConfig);
});
}
}
logUrl = ResourceUtils.getProperty("cos.loghandler.url");
if (logUrl != null && Boolean.parseBoolean(ResourceUtils.getProperty("cos.loghandler.enabled", "true"))) {
int nThread = ResourceUtils.getInt("cos.loghandler.threads", 1);
int capacity = ResourceUtils.getInt("cos.loghandler.queueSize", 1000);
logHandleExecutor = new ThreadPoolExecutor(nThread, nThread, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(capacity), new StandardThreadFactory("cosLogHandleExecutor"));
logger.info("init logHandleExecutor OK ,nThread:{},queue:{}", nThread, capacity);
}
}
use of com.jeesuite.common.async.StandardThreadExecutor.StandardThreadFactory 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.StandardThreadFactory 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);
}
use of com.jeesuite.common.async.StandardThreadExecutor.StandardThreadFactory in project jeesuite-libs by vakinge.
the class MQContext method getLogHandleExecutor.
private static ThreadPoolExecutor getLogHandleExecutor() {
if (context.logHandleExecutor != null)
return context.logHandleExecutor;
if (!context.loghandlerEnabled)
return null;
synchronized (context) {
StandardThreadFactory threadFactory = new StandardThreadFactory("mqLogHandleExecutor");
int nThread = ResourceUtils.getInt("jeesuite.amqp.loghandler.threads", 2);
int capacity = ResourceUtils.getInt("jeesuite.amqp.loghandler.queueSize", 1000);
context.logHandleExecutor = new ThreadPoolExecutor(nThread, nThread, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(capacity), threadFactory);
// 忽略topic列表
if (ResourceUtils.containsProperty("jeesuite.amqp.loghandler.ignoreTopics")) {
String[] topics = ResourceUtils.getProperty("jeesuite.amqp.loghandler.ignoreTopics").split(",|;");
for (String topic : topics) {
ignoreLogTopics.add(rebuildWithNamespace(topic));
}
}
}
return context.logHandleExecutor;
}
Aggregations