|
@Component
public> private static Logger logger = Logger.getLogger(SystemInit.class);
@Autowired
private ClusterDao clusterDao;
@Override
public void afterPropertiesSet() throws Exception {
logger.info("--------------系统初始化中-------------------");
initClusterCache();//初始化集群数据 必须最开始完成
initRefreshAppStatusTask();
initUpdateAppStatusToDB();
initUpdateSession();
logger.info("--------------系统初始化完成-------------------");
}
/**
* 1.初始化集群数据
*/
private void initClusterCache(){
logger.info("1.初始化集群信息到缓存中:ClusterCache开始");
//查询数据库所有的集群数据
List<ClusterEntity> allClusterInfoList = clusterDao.selectAll(ClusterEntity.class, "delete_flag=0");
for (ClusterEntity k8sClusterEntity : allClusterInfoList) {
ClusterCache.put(k8sClusterEntity.getUuid() , k8sClusterEntity);//存入缓存
}
logger.info("1.初始化集群信息到缓存中:ClusterCache完成,总共" + allClusterInfoList.size() + "条数据");
}
/**
* 2.初始化异步任务:刷新所有应用状态
*/
private void initRefreshAppStatusTask() {
logger.info("2.初始化任务:RefreshAllAppStatusTask 刷新应用下的k8s的pod状态并存入待更新队列");
RefreshAppStatusExcutor.init();
logger.info("2.初始化任务:RefreshAllAppStatusTask 完成");
}
/**
* 3.初始化异步任务:更新状态到数据库
*/
private void initUpdateAppStatusToDB() {
logger.info("3.初始化任务:RefreshToDBTask 从待更新Appinstance队列取出数据并更新数据库");
UpdateAppStatusToDBExcutor.init();
logger.info("3.初始化任务:RefreshToDBTask 完成");
}
/**
* 4. 初始化异步任务: 更新用户的所有session
*/
private void initUpdateSession() {
logger.info("4.初始化任务:更新session开始");
UserSessionUpdateExcutor.init();
logger.info("4.初始化任务:更新session结束");
}
////////////////////////////////////////////////////////////////
//此方法一定不要写成static
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
//实际上是把applicationContext传入到了SpringContextUtil里面
SpringContextUtil.setApplicationContext(applicationContext);
}
} |
|
|