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

来源:互联网 发布:sybase数据库 编辑:程序博客网 时间:2024/06/15 17:48



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();
}

}
}

0 0
原创粉丝点击