| package com.xcong.excoin.quartz.job; | 
|   | 
| import com.xcong.excoin.modules.blackchain.service.TrxUsdtUpdateService; | 
| import com.xcong.excoin.modules.blackchain.service.UsdtEthService; | 
| import com.xcong.excoin.utils.RedisUtils; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.apache.commons.collections.CollectionUtils; | 
| import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | 
| import org.springframework.scheduling.annotation.Scheduled; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import javax.annotation.Resource; | 
| import java.util.ArrayList; | 
| import java.util.List; | 
| import java.util.concurrent.ExecutionException; | 
|   | 
| /** | 
|  * 归集定时任务 | 
|  * | 
|  * @author wzy | 
|  * @date 2020-07-02 | 
|  **/ | 
|   | 
| @Slf4j | 
| @Component | 
| @ConditionalOnProperty(prefix = "app", name = "block-job", havingValue = "true") | 
| public class NotionalPoolingJob { | 
|   | 
|     @Resource | 
|     private UsdtEthService usdtEthService; | 
|   | 
|     @Resource | 
|     private RedisUtils redisUtils; | 
|   | 
|     @Resource | 
|     private TrxUsdtUpdateService trxUsdtUpdateService; | 
|   | 
|     /** | 
|      * usdt 归集 | 
|      */ | 
|     @Scheduled(cron = "0 5/30 * * * ? ") | 
|     public void poolUsdtEth() { | 
|         try { | 
|             log.info("USDT归集开始"); | 
|             usdtEthService.pool(); | 
|             log.info("USDT归集结束"); | 
|         } catch (ExecutionException | InterruptedException e) { | 
|             log.error("#usdt归集错误#", e); | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 使用扫块 不需要这个 | 
|      */ | 
|     //@Scheduled(cron = "0 2/8 * * * ? ") | 
|     @Deprecated | 
|     public void usdtEthPoolCheck() { | 
|         log.info("USDTETH归集结果扫描开始"); | 
|         usdtEthService.usdtEthPoolCheck(); | 
|     } | 
|   | 
|     @Scheduled(cron = "0 2/30 * * * ? ") | 
|     public void poolEth() { | 
|         try { | 
|             usdtEthService.ethPool(); | 
|         } catch (ExecutionException | InterruptedException e) { | 
|             log.info("#ETH归集错误#", e); | 
|         } | 
|     } | 
|   | 
|     /** | 
|      *  归集TRC20 | 
|      */ | 
|     @Scheduled(cron = "0 1/5 * * * ? ") | 
|     public void poolUsdtTrc20() { | 
|         Object trc20_pool = redisUtils.get("TRC20_POOL"); | 
|         if(trc20_pool==null){ | 
|             return; | 
|         } | 
|         List<String> list = (List)trc20_pool; | 
|         for(String address: list){ | 
|            trxUsdtUpdateService.poolByAddress(address); | 
|         } | 
|     } | 
| } |