/** 采集数据调度入口 */ @Override public void executeJob(JobExecutionContext jobExecutionContext) throws JobExecutionException { LogSystem.info("日统计开始 " + jobExecutionContext.getJobDetail().getName()); // CronTrigger cronTrigger= (CronTrigger)jobExecutionContext.getTrigger(); // String[] serverIdsArr = ((String)cronTrigger.getJobDataMap().get("serverIds")).split(","); // // 已经修正 Map<Integer, TGameServer> gameServerMap = DataSourceManager.getInstatnce().getGameServerMap(); StringBuilder serverName = new StringBuilder(); Iterator<Integer> iter = gameServerMap.keySet().iterator(); while (iter.hasNext()) { Integer key = iter.next(); TGameServer value = gameServerMap.get(key); LogSystem.info("print key = " + key + " value = " + value); serverName.append(value.getServerId() + ","); } String[] serverIdsArr = serverName.toString().split(","); Date date = new Date(); for (int i = 0; i < serverIdsArr.length; i++) { CustomerContextHolder.setSystemNum(Integer.valueOf(serverIdsArr[i])); LogSystem.info("serverId:" + serverIdsArr[i]); // LogSystem.info("cronTrigger.timezone:"+cronTrigger.getTimeZone().getID()); LogSystem.info("管理后台的时间:" + date.toString()); Date nowServerTime = DateUtil.getNowDateBySystemNum(); LogSystem.info("游戏服务器时间:" + nowServerTime.toString()); // 开服过后一天才统计数据(已经修正) Date serverOpernTime = DataSourceManager.getInstatnce() .getGameServerMap() .get(CustomerContextHolder.getSystemNum()) .getServerOpernTime(); // Date d = new Date(serverOpernTime.getTime()+24*60*60*1000); Date d = new Date(serverOpernTime.getTime()); if (nowServerTime.getTime() < d.getTime()) { LogSystem.info("还木有开服,不统计!"); continue; } // InvocationCollector invocationCollector = (InvocationCollector) // ServiceCacheFactory.getServiceCache().getBeanById("dayInvocationCollector"); // invocationCollector.invoke(date); executeOneServer(date, Integer.valueOf(serverIdsArr[i])); LogSystem.info("日统计完毕 " + jobExecutionContext.getJobDetail().getName()); } }