public class PerformanceServiceProc
{
/**
* 调测日志记录器。
*/
private static Logger logger = Logger.getLogger(PerformanceServiceProc.class);
/**
* 保存收到的portal服务器的性能数据的列表
*/
private ArrayList<Performance> performanceList = new ArrayList<Performance>();
/**
* 性能统计的服务器实体对象
*/
private PortalServerService portalServerService = new PortalServerService();
/**
* 数据库操作的Dao对象
*/
private PerformanceService performanceService = new PerformanceServiceImpl();
/**
*
* 周期时间类的数据已经服务器名称记录到列表中。
* @param performance 性能统计对象
*/
private void addPerformanceList(Performance performance)
{
logger.recordEnterMethodLog();
if (null == performance)
{
return;
}
boolean isExist = false;
String portalId = performance.getPortalServerId();
for (Performance existPerformance : performanceList)
{
if (portalId.equals(existPerformance.getPortalServerId()))
{
isExist = true;
existPerformance.add(performance);
}
}
if (!isExist)
{
performanceList.add(performance);
}
logger.recordExitMethodLog();
}
/**
*
* 处理业务信息性能统计数据的入口函数
*
* @param object 性能统计对象
* @return 0成功,非0 失败
*/
public int procPerformance(Object object)
{
logger.recordEnterMethodLog();
if (null == object)
{
return PortalCommonConst.RESULT_FAIL;
}
Performance performance = (Performance)object;
//取当前数据汇聚时的时间
Timestamp timestamp = performance.getPerformanceDateTime();
String portalName = performance.getPortalServerId();
if (portalServerService.isServerRecord(portalName, timestamp))
{
return PortalCommonConst.RESULT_SUCCESS;
}
else
{
portalServerService.record(portalName, timestamp);
addPerformanceList(performance);
}
logger.recordExitMethodLog();
return PortalCommonConst.RESULT_SUCCESS;
}
/**
*
* 服务端周期处理性能统计数据的入口函数。
*
*/
public void procPerformanceResult()
{
logger.recordEnterMethodLog();
// 累加各个服务器的统计数据
Performance performance = new Performance();
for (Performance performanceFromList : performanceList)
{
performance.add(performanceFromList);
}
//设置统计时间
Timestamp timestamp = new Timestamp(CommonProcess.getCurTimeByZone());
performance.setPerformanceDateTime(timestamp);
// 添加本次未统计到的服务器的id
performance.setUnRecordPortalServerId(portalServerService.getUnrecordServerName());
//将数据入库
if (performanceService.addData(performance))
{
//清理统计列表
performanceList.clear();
}
else
{
// 添加数据失败,更新下次更新时间,下次统计的时候和前一次的一起统计。
logger.recordErrorsLog("addData error");
performance.setUnRecordPortalServerId(null);
}
logger.recordExitMethodLog();
}
/**
* 定期删除话统信息
*
*/
public void perClearPerformance()
{
logger.recordEnterMethodLog();
performanceService.deletePerformanceByTime();
performanceService.deleteSystemPerformanceByTime();
logger.recordExitMethodLog();
}
}
{
/**
* 调测日志记录器。
*/
private static Logger logger = Logger.getLogger(PerformanceServiceProc.class);
/**
* 保存收到的portal服务器的性能数据的列表
*/
private ArrayList<Performance> performanceList = new ArrayList<Performance>();
/**
* 性能统计的服务器实体对象
*/
private PortalServerService portalServerService = new PortalServerService();
/**
* 数据库操作的Dao对象
*/
private PerformanceService performanceService = new PerformanceServiceImpl();
/**
*
* 周期时间类的数据已经服务器名称记录到列表中。
* @param performance 性能统计对象
*/
private void addPerformanceList(Performance performance)
{
logger.recordEnterMethodLog();
if (null == performance)
{
return;
}
boolean isExist = false;
String portalId = performance.getPortalServerId();
for (Performance existPerformance : performanceList)
{
if (portalId.equals(existPerformance.getPortalServerId()))
{
isExist = true;
existPerformance.add(performance);
}
}
if (!isExist)
{
performanceList.add(performance);
}
logger.recordExitMethodLog();
}
/**
*
* 处理业务信息性能统计数据的入口函数
*
* @param object 性能统计对象
* @return 0成功,非0 失败
*/
public int procPerformance(Object object)
{
logger.recordEnterMethodLog();
if (null == object)
{
return PortalCommonConst.RESULT_FAIL;
}
Performance performance = (Performance)object;
//取当前数据汇聚时的时间
Timestamp timestamp = performance.getPerformanceDateTime();
String portalName = performance.getPortalServerId();
if (portalServerService.isServerRecord(portalName, timestamp))
{
return PortalCommonConst.RESULT_SUCCESS;
}
else
{
portalServerService.record(portalName, timestamp);
addPerformanceList(performance);
}
logger.recordExitMethodLog();
return PortalCommonConst.RESULT_SUCCESS;
}
/**
*
* 服务端周期处理性能统计数据的入口函数。
*
*/
public void procPerformanceResult()
{
logger.recordEnterMethodLog();
// 累加各个服务器的统计数据
Performance performance = new Performance();
for (Performance performanceFromList : performanceList)
{
performance.add(performanceFromList);
}
//设置统计时间
Timestamp timestamp = new Timestamp(CommonProcess.getCurTimeByZone());
performance.setPerformanceDateTime(timestamp);
// 添加本次未统计到的服务器的id
performance.setUnRecordPortalServerId(portalServerService.getUnrecordServerName());
//将数据入库
if (performanceService.addData(performance))
{
//清理统计列表
performanceList.clear();
}
else
{
// 添加数据失败,更新下次更新时间,下次统计的时候和前一次的一起统计。
logger.recordErrorsLog("addData error");
performance.setUnRecordPortalServerId(null);
}
logger.recordExitMethodLog();
}
/**
* 定期删除话统信息
*
*/
public void perClearPerformance()
{
logger.recordEnterMethodLog();
performanceService.deletePerformanceByTime();
performanceService.deleteSystemPerformanceByTime();
logger.recordExitMethodLog();
}
}
本文介绍了一个用于收集和处理服务器性能数据的Java类。该类能够接收来自不同门户服务器的性能数据,将其汇总并存储在数据库中。同时,还提供定期清理过期统计数据的功能。
127

被折叠的 条评论
为什么被折叠?



