From 511f49a3ef8d454d0f65ec41b723d2a3b7d6e314 Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Wed, 12 May 2021 16:34:05 +0800 Subject: [PATCH] 优化波场同步区块为一分钟往队列放入一次区块号列表 --- src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) 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 4b2514f..d5a56cc 100644 --- a/src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java +++ b/src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java @@ -21,7 +21,7 @@ **/ @Slf4j @Component -@ConditionalOnProperty(prefix = "app", name = "block-job", havingValue = "true") +//@ConditionalOnProperty(prefix = "app", name = "block-job", havingValue = "true") public class BlockCoinUpdateJob { @Resource @@ -60,11 +60,11 @@ } - @Scheduled(cron = "0/2 * * * * ? ") + @Scheduled(cron = "0 0/1 * * * ? ") public void usdtTc20UpdateQueue() { // 查询最新区块号 long getnowblock = trxUsdtUpdateService.getnowblockFromTronScan() - 25; - // 生成块到队列 + // 拿到redis里最新区块 Object trc20BlockNum = redisUtils.get("USDT_TRC20_BLOCK_NUM"); if (trc20BlockNum == null) { // 没有则取最新的块 @@ -72,13 +72,18 @@ redisUtils.set("USDT_TRC20_BLOCK_NUM", getnowblock); } Long blockNum = Long.valueOf(trc20BlockNum.toString()); - if (getnowblock < blockNum) { + if (getnowblock <= blockNum) { // 如果当前区块比最新已确认区块还大,则不继续执行 return; } - // 将得到的区块+1 放入队列 - TRC_BLOCK.add(blockNum + 1L); - redisUtils.incr("USDT_TRC20_BLOCK_NUM", 1); + // 得到最新区块和当前区块的差值 + Long diff = getnowblock-blockNum; + for(long i=1;i<=diff;i++){ + blockNum++; + TRC_BLOCK.add(blockNum); + } + // 将最新的最大区块放入redis + redisUtils.set("USDT_TRC20_BLOCK_NUM", blockNum); } /** -- Gitblit v1.9.1