线程池的应用(缓存的处理思想)



import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;




public class ThreadPoolUtil {

private static final ExecutorService executors;

private static final ScheduledExecutorService sheduledThreadPool;

static{
executors = Executors.newFixedThreadPool(6);
sheduledThreadPool = Executors.newScheduledThreadPool(3);
}

public static ExecutorService getExecutorService(){
return executors;
}

public static ScheduledExecutorService getScheduledExecutorService(){
return sheduledThreadPool;
}
}


public class SysconfigUtil {

private static Logger log = LoggerFactory.getLogger(SysconfigUtil.class);

private static List<SysConfig> configList = new ArrayList<SysConfig>();

static{
ScheduledExecutorService executorService = ThreadPoolUtil.getScheduledExecutorService();
SysconfigTask task = new SysconfigTask();
SetDataTask sdt = new SetDataTask();//
GetSearch gs = new GetSearch();//
ClearIndexCacheTask indexCacheTask = new ClearIndexCacheTask();
executorService.scheduleAtFixedRate(task, 0, 3L, TimeUnit.MINUTES);
executorService.scheduleAtFixedRate(gs, 0, 3L, TimeUnit.MINUTES);
executorService.scheduleAtFixedRate(sdt, 0, 3L, TimeUnit.MINUTES);
executorService.scheduleAtFixedRate(indexCacheTask, 0, 5L, TimeUnit.MINUTES);
}


public static String getFirstConfigValue(String key){
String value = "";
if(StringUtils.isNotEmpty(key)){
for (SysConfig sysConfig : configList) {
if(key.equalsIgnoreCase(sysConfig.getName())){
value = sysConfig.getVal();
break;
}
}
}
return value;
}


public static List<String> getConfigValues(String key){
List<String> valueList = new ArrayList<String>();
if(StringUtils.isNotEmpty(key)){
for(SysConfig sysConfig : configList){
if(key.equalsIgnoreCase(sysConfig.getName())){
valueList.add(sysConfig.getVal());
}
}
}
return valueList;
}


public static List<SysConfig> getConfigList(){
return configList;
}

private static class SysconfigTask implements Runnable{

@Override
public void run() {
SysConfigService configService = (SysConfigService) AppUtil.getBean(SysConfigService.class);
List<SysConfig> newList = configService.getAll();
SysconfigUtil.getConfigList().clear();
SysconfigUtil.getConfigList().addAll(newList);
if(log.isDebugEnabled()){
log.debug("current time is:" + System.currentTimeMillis() + ";sysconfig list is:" + SysconfigUtil.getConfigList().toString());
}
}
}


/**]
*
*/
private static class SetDataTask implements Runnable{
@Override
public void run() {
EipDictService eds = (EipDictService) AppUtil.getBean(EipDictService.class);
EipDictService.listSettings = eds.getTask();
if(log.isDebugEnabled()){
log.debug("EipDictService.listSettings" + EipDictService.listSettings.size());
}
}
}



private static class GetSearch implements Runnable{
@Override
public void run() {
EipDictService eds = (EipDictService) AppUtil.getBean(EipDictService.class);
EipDictService.getEipSearch = eds.getSearch();
if(log.isDebugEnabled()){
log.debug("EipDictService.getEipSearch" + EipDictService.getEipSearch.size());
}
}
}


/**
*/
private static class ClearIndexCacheTask implements Runnable{
@Override
public void run() {
IndexCacheUtil.clearCache();
}

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值