From 5264c0165e3dbdeec367081ea68e18bffc4bd060 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 29 Aug 2022 16:17:25 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/job/ChainListenerJob.java | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java b/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java index c1efb2c..725aebb 100644 --- a/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java +++ b/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java @@ -23,17 +23,15 @@ public class ChainListenerJob implements ApplicationRunner { @Autowired - private ContractEventService bscCoinContractEvent; - - @Autowired private ContractEventService bscUsdtContractEvent; + @Autowired + private ContractEventService bscCoinContractEvent; @Autowired private RedisUtils redisUtils; @Scheduled(cron = "0 0/5 * * * ? ") public void chainBlockUpdate() { - log.info("最新区块更新"); BigInteger blockNumber = ChainService.getInstance(ChainEnum.BSC_TFC.name()).blockNumber(); redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM, blockNumber); @@ -82,17 +80,21 @@ BigInteger section = BigInteger.valueOf(5000); while (newest.subtract(block).compareTo(section) > -1) { BigInteger end = block.add(section); - log.info("监听:[{} - {}]", block, end); - ChainService.contractEventListener(block, end, bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); - ChainService.contractEventListener(block, end, bscCoinContractEvent, ChainEnum.BSC_TFC.name()); + + BigInteger finalBlock = block; + new Thread(() -> { + log.info("监听:[{} - {}]", finalBlock, end); + ChainService.contractEventListener(finalBlock, end, bscUsdtContractEvent, ChainEnum.BSC_USDT_LISTENER.name()); + ChainService.contractEventListener(finalBlock, end, bscCoinContractEvent, ChainEnum.BSC_TFC_FEE.name()); + }).start(); block = block.add(section); if (block.compareTo(newest) > 0) { block = newest; } } - ChainService.contractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); - ChainService.contractEventListener(block, bscCoinContractEvent, ChainEnum.BSC_TFC.name()); + ChainService.contractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT_LISTENER.name()); + ChainService.contractEventListener(block, bscCoinContractEvent, ChainEnum.BSC_TFC_FEE.name()); long end = System.currentTimeMillis(); log.info("区块链监听启动完成, 消耗时间{}", end - start); -- Gitblit v1.9.1