Java tutorial
/* * Copyright (C) 2010-2101 Alibaba Group Holding Limited. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.alibaba.otter.manager.web.home.module.screen; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import com.alibaba.citrus.turbine.Context; import com.alibaba.citrus.turbine.dataresolver.Param; import com.alibaba.otter.manager.biz.config.channel.ChannelService; import com.alibaba.otter.manager.biz.statistics.delay.DelayStatService; import com.alibaba.otter.manager.biz.statistics.delay.param.DelayStatInfo; import com.alibaba.otter.shared.common.model.config.channel.Channel; public class AnalysisDelayStat { @Resource(name = "channelService") private ChannelService channelService; @Resource(name = "delayStatService") private DelayStatService delayStatService; public void execute(@Param("d5221") String startTime, @Param("d5222") String endTime, @Param("pipelineId") Long pipelineId, HttpSession session, Context context) throws Exception { Date end = null; Date start = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); if (StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) { start = new Date(System.currentTimeMillis() / 60000 * 60000 - 24 * 60 * 60 * 1000); end = new Date(System.currentTimeMillis() / 60000 * 60000); } else {// ?24?? sdf.setLenient(false); if (null != startTime && null != endTime) { start = sdf.parse(startTime); end = sdf.parse(endTime); } } Channel channel = channelService.findByPipelineId(pipelineId); Map<Long, DelayStatInfo> delayStatInfos = new HashMap<Long, DelayStatInfo>(); if (null != start && null != end) { delayStatInfos = delayStatService.listTimelineDelayStat(pipelineId, start, end); } Double delayAvg = 0.0; for (DelayStatInfo info : delayStatInfos.values()) { delayAvg += info.getAvgDelayTime(); } if (delayStatInfos.size() != 0) { delayAvg = delayAvg / (1.0 * delayStatInfos.size()); } context.put("delayStatInfos", delayStatInfos); context.put("delayAvg", delayAvg); context.put("channel", channel); context.put("pipelineId", pipelineId); context.put("start", sdf.format(start)); context.put("end", sdf.format(end)); } }