src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java
@@ -63,9 +63,9 @@ } } // 扫块区块 Object trc20BlockNum = redisUtils.get("USDT_TRC20_BLOCK_NUM"); Object trc20BlockNum = redisUtils.get("USDT_TRC20_BLOCK_NUM"); if(trc20BlockNum==null){ trc20BlockNum = 28095275L; trc20BlockNum = 28471475L; } Long blockNum = Long.valueOf(trc20BlockNum.toString()); @@ -77,7 +77,7 @@ // 解析区块 httpTransactionInfo(addressList, blockNum); redisUtils.set("USDT_TRC20_BLOCK_NUM", (blockNum + 1L)); } /** @@ -90,11 +90,17 @@ if (StringUtils.isBlank(transactionInfoByBlockNum)) { return; } // 不用等到扫完再累加 只要进来就加 还有一个条件是必须查询出区块再加 否则当区块超过实际区块 redisUtils.set("USDT_TRC20_BLOCK_NUM", (num + 1L)); JSONArray parseArray = JSON.parseArray(transactionInfoByBlockNum); if (parseArray.size() > 0) { for (Object e : parseArray) { try { String txId = JSON.parseObject(e.toString()).getString("id"); String contract_address = JSON.parseObject(e.toString()).getString("contract_address"); if(!"41a614f803b6fd780986a42c78ec9c7f77e6ded13c".equals(contract_address)){ continue; } //判断 数据库 txId 有 就不用往下继续了 JSONObject parseObject = JSON.parseObject(getTransactionById(txId)); String contractRet = parseObject.getJSONArray("ret").getJSONObject(0).getString("contractRet"); @@ -302,4 +308,5 @@ return true; } } } src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java
@@ -32,24 +32,14 @@ @Resource RedisUtils redisUtils; /** * TRC20_USDT 同步 */ @Scheduled(cron = "0/3 * * * * ? ") public void usdtTc20Update() { // 需要加锁 boolean lock = redisUtils.setNotExist("USDT_TRC20_UPDATE", 1, 30); if(lock){ try{ trxUsdtUpdateService.monitorCoinListener(); } catch (Exception e){ e.printStackTrace(); }finally { // 若异常 需要删除 redisUtils.del("USDT_TRC20_UPDATE"); } } // 波场3秒出一个块 trxUsdtUpdateService.monitorCoinListener(); } /** @@ -77,17 +67,17 @@ blockCoinService.updateBtcUsdt(); } // @Scheduled(cron = "0 3/20 * * * ? ") // @Scheduled(cron = "0 3/20 * * * ? ") public void btcUpdate() { blockCoinService.updateBtc(); } // @Scheduled(cron = "0 4/20 * * * ? ") // @Scheduled(cron = "0 4/20 * * * ? ") public void eosUpdate() { blockCoinService.updateEos(); } // @Scheduled(cron = "0 6/20 * * * ? ") // @Scheduled(cron = "0 6/20 * * * ? ") public void xrpUpdate() { blockCoinService.updateXrp(); }