From eeb06d26c092d12b42d5b450afdbf002fec1795f Mon Sep 17 00:00:00 2001
From: zainali5120 <512061637@qq.com>
Date: Mon, 15 Mar 2021 20:12:17 +0800
Subject: [PATCH] 优化扫块速度
---
src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java | 13 ++++++++++---
src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java | 22 ++++++----------------
2 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java b/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java
index cd6aa7f..c6178dc 100644
--- a/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java
+++ b/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;
}
}
+
}
diff --git a/src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java
index a0a266a..9a58a36 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java
+++ b/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();
}
--
Gitblit v1.9.1