@Override public void execute(Tuple tuple, BasicOutputCollector collector) { // refresh gamecfg _prop = _gamecfgLoader.loadCfg(_gamecfg, _prop); String game_abbr = tuple.getString(0); String platform_id = tuple.getString(1); String server_id = tuple.getString(2); Long todayDate = tuple.getLong(3); Long datetime = tuple.getLong(4); int count1 = tuple.getInteger(5); int countip = tuple.getInteger(6); String hour = tuple.getString(7); int count2 = tuple.getInteger(8); String job_id = tuple.getString(9); int count3 = tuple.getInteger(10); String adplanning_id = tuple.getString(11); String chunion_subid = tuple.getString(12); int count5min = tuple.getInteger(13); Long tis_datetime_5min = tuple.getLong(14); int count1hour = tuple.getInteger(15); Long tis_datetime_1hour = tuple.getLong(16); String todayStr = tuple.getString(17); String jobRegDbCol = (String) _jobList.get(Integer.parseInt(job_id)); String hourlyRegDbCol = "T" + hour; String ins_sql = String.format( "INSERT INTO adplanning_signinLogin_today (adplanning_id, chunion_subid, platform, server, date, up_time, %s, daily_characters, %s, charip)" + " VALUES (%s, %s, %s, %s, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE up_time=%d, %s=%d, daily_characters=%d, %s=%d, charip=%d;", jobRegDbCol, hourlyRegDbCol, adplanning_id, chunion_subid, platform_id, server_id, todayDate, datetime, count3, count1, count2, countip, datetime, jobRegDbCol, count3, count1, hourlyRegDbCol, count2, countip); // 写入ad_realtime表 String ad_realtime_tbname = "ad_realtime_" + todayStr; String create_ad_realtime_sql = String.format( "CREATE TABLE IF NOT EXISTS %s (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`adplanning_id` int(11) unsigned NOT NULL," + "`chunion_subid` int(11) unsigned NOT NULL DEFAULT 0,`datetime` int(11) unsigned NOT NULL,`duration_type` tinyint(3) unsigned NOT NULL," + "`p_reg` int(11) unsigned NOT NULL DEFAULT 0,`characters` int(11) unsigned NOT NULL DEFAULT 0,`ip` int(11) unsigned NOT NULL DEFAULT 0," + "`pv` int(11) unsigned NOT NULL DEFAULT 0,PRIMARY KEY (`id`),UNIQUE KEY (`adplanning_id`, `chunion_subid`, `datetime`, `duration_type`)) " + "ENGINE=MyISAM DEFAULT CHARSET=utf8;", ad_realtime_tbname); String ins_ad_realtime_5min_sql = String.format( "INSERT INTO %s (adplanning_id, chunion_subid, datetime, duration_type, characters) VALUES (%s, %s, %d, 1, %d) " + "ON DUPLICATE KEY UPDATE characters=%d;", ad_realtime_tbname, adplanning_id, chunion_subid, tis_datetime_5min, count5min, count5min); String ins_ad_realtime_1hour_sql = String.format( "INSERT INTO %s (adplanning_id, chunion_subid, datetime, duration_type, characters) VALUES (%s, %s, %d, 2, %d) " + "ON DUPLICATE KEY UPDATE characters=%d;", ad_realtime_tbname, adplanning_id, chunion_subid, tis_datetime_1hour, count1hour, count1hour); // flush to mysql String mysql_host = _prop.getProperty("game." + game_abbr + ".mysql_host"); String mysql_port = _prop.getProperty("game." + game_abbr + ".mysql_port"); String mysql_db = _prop.getProperty("game." + game_abbr + ".mysql_db"); String mysql_user = _prop.getProperty("game." + game_abbr + ".mysql_user"); String mysql_passwd = _prop.getProperty("game." + game_abbr + ".mysql_passwd"); if (mysql.getConnection( game_abbr, mysql_host, mysql_port, mysql_db, mysql_user, mysql_passwd)) { boolean sql_ret; try { System.out.println(ins_sql); sql_ret = _dbconnect.DirectUpdate(game_abbr, ins_sql); System.out.println(sql_ret); } catch (SQLException e) { e.printStackTrace(); } try { System.out.println(create_ad_realtime_sql); sql_ret = _dbconnect.DirectUpdate(game_abbr, create_ad_realtime_sql); System.out.println(sql_ret); } catch (SQLException e) { e.printStackTrace(); } try { System.out.println(ins_ad_realtime_5min_sql); sql_ret = _dbconnect.DirectUpdate(game_abbr, ins_ad_realtime_5min_sql); System.out.println(sql_ret); } catch (SQLException e) { e.printStackTrace(); } try { System.out.println(ins_ad_realtime_1hour_sql); sql_ret = _dbconnect.DirectUpdate(game_abbr, ins_ad_realtime_1hour_sql); System.out.println(sql_ret); } catch (SQLException e) { e.printStackTrace(); } } /*if (!_tc.push(game_abbr, ins_sql)) { _tc.pullAndFlush(game_abbr); }*/ System.out.println("@@@@@@ " + ins_sql); }
@Override public void execute(Tuple tuple, BasicOutputCollector collector) { // refresh gamecfg _prop = _gamecfgLoader.loadCfg(_gamecfg, _prop); String game_abbr = tuple.getStringByField("game_abbr"); String platform_id = tuple.getStringByField("platform_id"); String server_id = tuple.getStringByField("server_id"); String startup_datetime = tuple.getStringByField("startup_datetime"); String devid = tuple.getStringByField("devid"); String system = tuple.getStringByField("system"); String appver = tuple.getStringByField("appver"); String model = tuple.getStringByField("model"); String resolution = tuple.getStringByField("resolution"); String sp = tuple.getStringByField("sp"); String network = tuple.getStringByField("network"); String client_ip = tuple.getStringByField("client_ip"); String district = tuple.getStringByField("district"); String osver = tuple.getStringByField("osver"); String osbuilder = tuple.getStringByField("osbuilder"); String devtype = tuple.getStringByField("devtype"); if (common.isNumber(platform_id) && common.isNumber(server_id)) { Long startup_datetime_int = Long.parseLong(startup_datetime); String todayStr = date.timestamp2str(startup_datetime_int, "yyyyMMdd"); String todayHourStr = date.timestamp2str(startup_datetime_int, "yyyyMMdd-HH"); String todayMinuteStr = date.timestamp2str(startup_datetime_int, "yyyyMMdd-HHmm"); String curHour = date.timestamp2str(startup_datetime_int, "H"); Long todayDate = date.str2timestamp(todayStr, "yyyyMMdd"); Long todayMinuteDate = date.str2timestamp(todayMinuteStr, "yyyyMMdd-HHmm"); Integer client = system2client.turnSystem2ClientId(system); Integer ifAbroad = platform2ifabroad.turnPlatform2ifabroad(platform_id); // 记录启动列表 String mstartupListKey = "mstartup:" + game_abbr + ":" + platform_id + ":" + server_id + ":" + devid + ":record"; String mstartupListValue = "mstartup:" + game_abbr + ":" + platform_id + ":" + server_id + ":" + devid + ":" + startup_datetime + ":record:detail"; _jedis.rpush(mstartupListKey, mstartupListValue); Map mstartupListDetailMap = new HashMap(); mstartupListDetailMap.put("os", system); mstartupListDetailMap.put("appver", appver); mstartupListDetailMap.put("model", model); mstartupListDetailMap.put("resolution", resolution); mstartupListDetailMap.put("operator", sp); mstartupListDetailMap.put("network", network); mstartupListDetailMap.put("clientip", client_ip); mstartupListDetailMap.put("district", district); mstartupListDetailMap.put("osver", osver); mstartupListDetailMap.put("osbuilder", osbuilder); mstartupListDetailMap.put("devtype", devtype); _jedis.hmset(mstartupListValue, mstartupListDetailMap); // 全局累计数据key String overallKey = "overalldata:" + game_abbr + ":" + system + ":" + platform_id + ":hash:incr"; String overallAbroadKey = "overalldata:" + game_abbr + ":" + system + ":" + ifAbroad + ":hash:abroad:incr"; // 1. 各系统所有启动设备列表 String startupDevListKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":total:dev:set"; String startupDevListAbroadKey = "mstartup:" + game_abbr + ":" + system + ":" + ifAbroad + ":total:dev:abroad:set"; // String startupIosDevListKey = "mstartup:" + game_abbr + ":iostotal" + platform_id + // ":total:dev:set"; _jedis.sadd(startupDevListKey, devid); _jedis.sadd(startupDevListAbroadKey, devid); Long overalldata_launchdev = 0L; Long overalldata_devjbs = 0L; Long overalldata_launchdev_abroad = 0L; Long overalldata_devjbs_abroad = 0L; // Long specNum = _jedis.scard(startupDevListKey); // // if ("iosjb".equals(system)) { // overalldata_devjbs = specNum; // overalldata_launchdev = specNum + (!_jedis.exists("mstartup:" + game_abbr + // ":ios:" + platform_id + ":total:dev:set") ? // 0L : _jedis.scard("mstartup:" + game_abbr + ":ios:" + platform_id + // ":total:dev:set")); // } else { // overalldata_launchdev = specNum; // } // 2. 各系统当天所有启动设备列表 String startupDevListDailyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + todayStr + ":dev:set"; String startupDevListDailyAbroadKey = "mstartup:" + game_abbr + ":" + system + ":" + ifAbroad + ":" + todayStr + ":dev:abroad:set"; _jedis.sadd(startupDevListDailyKey, devid); _jedis.expire(startupDevListDailyKey, 60 * 24 * 60 * 60); _jedis.sadd(startupDevListDailyAbroadKey, devid); _jedis.expire(startupDevListDailyAbroadKey, 60 * 24 * 60 * 60); Long overalldatadaily_launchdev = 0L; Long overalldatadaily_devjbs = 0L; Long overalldatadaily_launchdev_abroad = 0L; Long overalldatadaily_devjbs_abroad = 0L; if ("iosjb".equals(system) || "ios".equals(system)) { // String startupDevOppositeListKey = "mstartup:" + game_abbr + ":"; if ("iosjb".equals(system)) { overalldata_devjbs = overalldata_launchdev = _jedis.scard(startupDevListKey); overalldatadaily_devjbs = overalldatadaily_launchdev = _jedis.scard(startupDevListDailyKey); overalldata_devjbs_abroad = overalldata_launchdev_abroad = _jedis.scard(startupDevListAbroadKey); overalldatadaily_devjbs_abroad = overalldatadaily_launchdev_abroad = _jedis.scard(startupDevListDailyAbroadKey); // startupDevOppositeListKey += "ios:" + platform_id + ":total:dev:set"; } else { overalldata_launchdev = _jedis.scard(startupDevListKey); overalldatadaily_launchdev = _jedis.scard(startupDevListDailyKey); overalldata_launchdev_abroad = _jedis.scard(startupDevListAbroadKey); overalldatadaily_launchdev_abroad = _jedis.scard(startupDevListDailyAbroadKey); // startupDevOppositeListKey += "iosjb:" + platform_id + ":total:dev:set"; } // _jedis.sunionstore(startupIosDevListKey, startupDevListKey, startupDevOppositeListKey); // overalldata_launchdev = _jedis.scard(startupIosDevListKey); } else { overalldata_launchdev = _jedis.scard(startupDevListKey); overalldatadaily_launchdev = _jedis.scard(startupDevListDailyKey); overalldata_launchdev_abroad = _jedis.scard(startupDevListAbroadKey); overalldatadaily_launchdev_abroad = _jedis.scard(startupDevListDailyAbroadKey); } _jedis.hset(overallKey, "launchdev", overalldata_launchdev.toString()); _jedis.hset(overallKey, "devjbs", overalldata_devjbs.toString()); _jedis.hset(overallAbroadKey, "launchdev", overalldata_launchdev_abroad.toString()); _jedis.hset(overallAbroadKey, "devjbs", overalldata_devjbs_abroad.toString()); // Long overalldatadaily_launchdev = _jedis.scard(startupDevListDailyKey); _jedis.hset(overallKey, "launchdev:" + todayStr, overalldatadaily_launchdev.toString()); _jedis.hset(overallKey, "devjbs:" + todayStr, overalldatadaily_devjbs.toString()); _jedis.hset( overallAbroadKey, "launchdev:" + todayStr, overalldatadaily_launchdev_abroad.toString()); _jedis.hset( overallAbroadKey, "devjbs:" + todayStr, overalldatadaily_devjbs_abroad.toString()); // 3. 各系统当天各时段所有启动设备列表 String startupDevListHourlyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + todayHourStr + ":dev:set"; String startupDevListHourlyAbroadKey = "mstartup:" + game_abbr + ":" + system + ":" + ifAbroad + ":" + todayHourStr + ":dev:abroad:set"; _jedis.sadd(startupDevListHourlyKey, devid); _jedis.expire(startupDevListHourlyKey, 60 * 24 * 60 * 60); _jedis.sadd(startupDevListHourlyAbroadKey, devid); _jedis.expire(startupDevListHourlyAbroadKey, 60 * 24 * 60 * 60); Long overalldatahourly_launchdev = _jedis.scard(startupDevListHourlyKey); Long overalldatahourly_launchdev_abroad = _jedis.scard(startupDevListHourlyAbroadKey); _jedis.hset( overallKey, "launchdev:" + todayStr + ":" + curHour, overalldatahourly_launchdev.toString()); _jedis.hset( overallAbroadKey, "launchdev:" + todayStr + ":" + curHour, overalldatahourly_launchdev_abroad.toString()); // 4. 各系统当天各版本所有启动设备列表 String startupDevListDailyVerlyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + todayStr + ":" + appver + ":dev:set"; String startupDevListDailyVerlyAbroadKey = "mstartup:" + game_abbr + ":" + system + ":" + ifAbroad + ":" + todayStr + ":" + appver + ":dev:abroad:set"; _jedis.sadd(startupDevListDailyVerlyKey, devid); _jedis.expire(startupDevListDailyVerlyKey, 60 * 24 * 60 * 60); _jedis.sadd(startupDevListDailyVerlyAbroadKey, devid); _jedis.expire(startupDevListDailyVerlyAbroadKey, 60 * 24 * 60 * 60); Long overalldatadailyverly_launchdev = _jedis.scard(startupDevListDailyVerlyKey); Long overalldatadailyverly_launchdev_abroad = _jedis.scard(startupDevListDailyVerlyAbroadKey); _jedis.hset( overallKey, "launchdev:" + todayStr + ":" + appver, overalldatadailyverly_launchdev.toString()); _jedis.hset( overallAbroadKey, "launchdev:" + todayStr + ":" + appver, overalldatadailyverly_launchdev_abroad.toString()); // 5. 各系统当天各区服各版本启动设备列表 String startupDevListSvrDailyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayStr + ":" + appver + ":dev:set"; _jedis.sadd(startupDevListSvrDailyKey, devid); _jedis.expire(startupDevListSvrDailyKey, 60 * 24 * 60 * 60); Long signinlogindaily_launchdev = _jedis.scard(startupDevListSvrDailyKey); // 6. 各系统当天各区服各版本设备启动次数 String startupDevNumSvrDailyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayStr + ":" + appver + ":dev:incr"; _jedis.incr(startupDevNumSvrDailyKey); _jedis.expire(startupDevNumSvrDailyKey, 60 * 24 * 60 * 60); Integer signinlogindaily_launch = Integer.parseInt(_jedis.get(startupDevNumSvrDailyKey)); // 7. 各系统当天各时段各区服各版本启动设备列表 String startupDevListSvrHourlyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayHourStr + ":" + appver + ":dev:set"; _jedis.sadd(startupDevListSvrHourlyKey, devid); _jedis.expire(startupDevListSvrHourlyKey, 60 * 24 * 60 * 60); Long signinloginhourly_launchdev = _jedis.scard(startupDevListSvrHourlyKey); // 8. 各系统当天各区服各版本各时段设备启动次数 String startupDevNumSvrHourlyKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayHourStr + ":" + appver + ":dev:incr"; _jedis.incr(startupDevNumSvrHourlyKey); _jedis.expire(startupDevNumSvrHourlyKey, 60 * 24 * 60 * 60); Integer signinloginhourly_launch = Integer.parseInt(_jedis.get(startupDevNumSvrHourlyKey)); String startupDevListSvrKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":dev:set"; // 9. 各系统当天各区服各版本新增启动设备列表 String startupDevListSvrNewKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayStr + ":" + appver + ":dev:new:set"; // 10. 各系统当天各时段各区服各版本新增启动设备列表 String startupDevListSvrHourlyNewKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayHourStr + ":" + appver + ":dev:new:set"; // 11. 各系统当天各时段各分钟各区服各版本新增启动设备列表 String startupDevListSvrMinlyNewKey = "mstartup:" + game_abbr + ":" + system + ":" + platform_id + ":" + server_id + ":" + todayMinuteStr + ":" + appver + ":dev:new:set"; if (1L == _jedis.sadd(startupDevListSvrKey, devid)) { _jedis.sadd(startupDevListSvrNewKey, devid); _jedis.expire(startupDevListSvrNewKey, 60 * 24 * 60 * 60); _jedis.sadd(startupDevListSvrHourlyNewKey, devid); _jedis.expire(startupDevListSvrHourlyNewKey, 60 * 24 * 60 * 60); _jedis.sadd(startupDevListSvrMinlyNewKey, devid); _jedis.expire(startupDevListSvrMinlyNewKey, 60 * 24 * 60 * 60); } Long signinlogindaily_newdev = !_jedis.exists(startupDevListSvrNewKey) ? 0L : _jedis.scard(startupDevListSvrNewKey); Long signinloginhourly_newdev = !_jedis.exists(startupDevListSvrHourlyNewKey) ? 0L : _jedis.scard(startupDevListSvrHourlyNewKey); Long newonlinert_newdev = !_jedis.exists(startupDevListSvrMinlyNewKey) ? 0L : _jedis.scard(startupDevListSvrMinlyNewKey); // flush to mstartup daily list String mstartupDailyListKey = "mstartup:" + game_abbr + ":" + todayDate + ":record"; String mstartupDailyListValue = startup_datetime + ":" + client + ":" + platform_id + ":" + server_id + ":" + appver + ":" + devid + ":" + system + ":" + model + ":" + resolution + ":" + sp + ":" + network + ":" + client_ip + ":" + district + ":" + osver + ":" + osbuilder + ":" + devtype; _jedis.rpush(mstartupDailyListKey, mstartupDailyListValue); // flush to mysql String mysql_host = _prop.getProperty("game." + game_abbr + ".mysql_host"); String mysql_port = _prop.getProperty("game." + game_abbr + ".mysql_port"); String mysql_db = _prop.getProperty("game." + game_abbr + ".mysql_db"); String mysql_user = _prop.getProperty("game." + game_abbr + ".mysql_user"); String mysql_passwd = _prop.getProperty("game." + game_abbr + ".mysql_passwd"); if (mysql.getConnection( game_abbr, mysql_host, mysql_port, mysql_db, mysql_user, mysql_passwd)) { boolean sql_ret = false; String inssql_overalldata = ""; String inssql_overalldatadaily = ""; String dmlsql_overalldatahourly_tb = ""; String inssql_overalldatahourly = ""; String inssql_overalldatadailyverly = ""; String inssql_signinlogindaily = ""; String dmlsql_signinloginhourly_tb = ""; String inssql_signinloginhourly = ""; String dmlsql_startuplist_tb = ""; String inssql_startuplist = ""; String dmlsql_newonlinert_tb = ""; String inssql_newonlinert = ""; if (_dbFlushTimer.ifItsTime2FlushDb(client.toString() + platform_id + server_id + appver)) { inssql_overalldata = String.format( "INSERT INTO overalldata (client, platform, launchdev, devjbs)" + " VALUES (%d, '%s', %d, %d) ON DUPLICATE KEY UPDATE launchdev=%d, devjbs=%d;", client, platform_id, overalldata_launchdev, overalldata_devjbs, overalldata_launchdev, overalldata_devjbs); inssql_overalldatadaily = String.format( "INSERT INTO overalldatadaily (client, platform, date, launchdev)" + " VALUES (%d, '%s', %d, %d) ON DUPLICATE KEY UPDATE launchdev=%d;", client, platform_id, todayDate, overalldatadaily_launchdev, overalldatadaily_launchdev); String overalldatahourly_tb = "overalldatahourly_" + todayStr; dmlsql_overalldatahourly_tb = String.format( "CREATE TABLE IF NOT EXISTS %s (" + "`id` int(11) unsigned NOT NULL AUTO_INCREMENT," + "`client` tinyint(3) unsigned NOT NULL," + "`platform` mediumint(5) unsigned NOT NULL," + "`hour` tinyint(3) unsigned NOT NULL," + "`hau` int(11) unsigned NOT NULL DEFAULT 0," + "`maxonline` int(11) unsigned NOT NULL DEFAULT 0," + "`launchdev` int(11) unsigned NOT NULL DEFAULT 0," + "PRIMARY KEY (`id`)," + "UNIQUE KEY `platform` (`client`, `platform`, `hour`)" + ") ENGINE=MyISAM DEFAULT CHARSET=utf8;", overalldatahourly_tb); inssql_overalldatahourly = String.format( "INSERT INTO %s (client, platform, hour, launchdev) VALUES " + "(%d, '%s', '%s', %d) ON DUPLICATE KEY UPDATE launchdev=%d;", overalldatahourly_tb, client, platform_id, curHour, overalldatahourly_launchdev, overalldatahourly_launchdev); inssql_overalldatadailyverly = String.format( "INSERT INTO overalldatadailyverly (client, platform, " + "date, version, launchdev) VALUES (%d, '%s', %d, %s, %d) ON DUPLICATE KEY UPDATE launchdev=%d;", client, platform_id, todayDate, appver, overalldatadailyverly_launchdev, overalldatadailyverly_launchdev); inssql_signinlogindaily = String.format( "INSERT INTO signinlogindaily (client, platform, server, date," + "version, newdev, launchdev, launch) VALUES (%d, '%s', '%s', %d, '%s', %d, %d, %d) ON DUPLICATE KEY UPDATE" + " newdev=%d, launchdev=%d, launch=%d;", client, platform_id, server_id, todayDate, appver, signinlogindaily_newdev, signinlogindaily_launchdev, signinlogindaily_launch, signinlogindaily_newdev, signinlogindaily_launchdev, signinlogindaily_launch); String signinloginhourly_tb = "signinloginhourly_" + todayStr; dmlsql_signinloginhourly_tb = String.format( "CREATE TABLE IF NOT EXISTS %s (" + "`id` int(11) unsigned NOT NULL AUTO_INCREMENT," + "`client` tinyint(3) unsigned NOT NULL," + "`platform` mediumint(5) unsigned NOT NULL," + "`server` mediumint(5) unsigned NOT NULL," + "`hour` tinyint(3) unsigned NOT NULL," + "`version` char(10) CHARACTER SET UTF8 NOT NULL," + "`newdev` int(11) unsigned NOT NULL DEFAULT 0," + "`newacc` int(11) unsigned NOT NULL DEFAULT 0," + "`logins` int(11) unsigned NOT NULL DEFAULT 0," + "`launchdev` int(11) unsigned NOT NULL DEFAULT 0," + "`launch` int(11) unsigned NOT NULL DEFAULT 0," + "`lasttime` int(11) unsigned NOT NULL DEFAULT 0," + "PRIMARY KEY (`id`)," + "UNIQUE KEY `platform` (`client`, `platform`, `server`, `hour`, `version`)" + ") ENGINE=MyISAM DEFAULT CHARSET=utf8;", signinloginhourly_tb); inssql_signinloginhourly = String.format( "INSERT INTO %s (client, platform, server, hour, version," + "newdev, launchdev, launch) VALUES (%d, '%s', '%s', '%s', '%s', %d, %d, %d) ON DUPLICATE KEY UPDATE " + "newdev=%d, launchdev=%d, launch=%d;", signinloginhourly_tb, client, platform_id, server_id, curHour, appver, signinloginhourly_newdev, signinloginhourly_launchdev, signinloginhourly_launch, signinloginhourly_newdev, signinloginhourly_launchdev, signinloginhourly_launch); String newonlinert_tb = "newonlinert_" + todayStr; dmlsql_newonlinert_tb = String.format( "CREATE TABLE IF NOT EXISTS %s (" + "`id` int(11) unsigned NOT NULL AUTO_INCREMENT," + "`client` tinyint(3) unsigned NOT NULL," + "`platform` mediumint(5) unsigned NOT NULL," + "`server` mediumint(5) unsigned NOT NULL," + "`datetime` int(11) unsigned NOT NULL," + "`version` char(10) CHARACTER SET UTF8 NOT NULL," + "`online` int(10) unsigned NOT NULL DEFAULT 0," + "`newdev` int(11) unsigned NOT NULL DEFAULT 0," + "`newacc` int(11) unsigned NOT NULL DEFAULT 0," + "PRIMARY KEY (`id`)," + "UNIQUE KEY `platform` (`client`, `platform`, `server`, `datetime`, `version`)" + ") ENGINE=MyISAM DEFAULT CHARSET=utf8;", newonlinert_tb); inssql_newonlinert = String.format( "INSERT INTO %s (client, platform, server, datetime, version, newdev)" + " VALUES (%d, '%s', '%s', %d, '%s', %d) ON DUPLICATE KEY UPDATE newdev=%d;", newonlinert_tb, client, platform_id, server_id, todayMinuteDate, appver, newonlinert_newdev, newonlinert_newdev); // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_overalldata); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_overalldatadaily); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, // dmlsql_overalldatahourly_tb); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_overalldatahourly); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, // inssql_overalldatadailyverly); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_signinlogindaily); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, // dmlsql_signinloginhourly_tb); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_signinloginhourly); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, dmlsql_startuplist_tb); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_startuplist); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, dmlsql_newonlinert_tb); // } catch (SQLException e) { // e.printStackTrace(); // } // try { // sql_ret = _dbconnect.DirectUpdate(game_abbr, inssql_newonlinert); // } catch (SQLException e) { // e.printStackTrace(); // } } String startuplist_tb = "startuplist_" + todayStr; dmlsql_startuplist_tb = String.format( "CREATE TABLE IF NOT EXISTS %s (" + "`id` int(11) unsigned NOT NULL AUTO_INCREMENT," + "`client` tinyint(3) unsigned NOT NULL," + "`platform` mediumint(5) unsigned NOT NULL," + "`server` mediumint(5) unsigned NOT NULL," + "`version` char(10) CHARACTER SET UTF8 NOT NULL," + "`account` char(128) CHARACTER SET UTF8 NOT NULL," + "`devid` char(128) CHARACTER SET UTF8 NOT NULL," + "PRIMARY KEY (`id`)" + ") ENGINE=MyISAM DEFAULT CHARSET=utf8;", startuplist_tb); inssql_startuplist = String.format( "INSERT INTO %s (client, platform, server, version, account, " + "devid) VALUES (%d, '%s', '%s', '%s', '%s', '%s');", startuplist_tb, client, platform_id, server_id, appver, "", devid); String sql = inssql_overalldata; sql += inssql_overalldatadaily; sql += dmlsql_overalldatahourly_tb; sql += inssql_overalldatahourly; sql += inssql_overalldatadailyverly; sql += inssql_signinlogindaily; sql += dmlsql_signinloginhourly_tb; sql += inssql_signinloginhourly; sql += dmlsql_startuplist_tb; sql += inssql_startuplist; sql += dmlsql_newonlinert_tb; sql += inssql_newonlinert; System.out.println(sql); try { sql_ret = _dbconnect.DirectUpdateBatch(game_abbr, sql); } catch (SQLException e) { e.printStackTrace(); } System.out.println("|||||-----batch update result: " + sql_ret); } } else { System.out.println("platform or server id is not a number!"); } /*collector.emit(new Values(game_abbr, client, platform_id, server_id, devid, todayDate, todayStr, todayHourStr, curHour, overalldata_launchdev, overalldata_devjbs, overalldatadaily_launchdev, overalldatahourly_launchdev, overalldatadailyverly_launchdev, signinlogindaily_launchdev, signinlogindaily_launch, signinloginhourly_launchdev, signinloginhourly_launch));*/ }