package project.monitor.job.balanceof; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import kernel.util.ThreadUtils; import project.monitor.AutoMonitorWalletService; import project.monitor.model.AutoMonitorWallet; public class BalanceOfJob implements Runnable { private static final Logger logger = LoggerFactory.getLogger(BalanceOfJob.class); private AutoMonitorWalletService autoMonitorWalletService; public void start() { new Thread(this, "BalanceOfJob").start(); if (logger.isInfoEnabled()) { logger.info("授权监控 余额查询处理线程启动"); } } public void run() { while (true) { try { /** * 队列缓存处理完成后,再开始新的循环。队列的处理线程池缓冲需要设置为0 */ if (BalanceOfQueue.size() <= 0) { /** * 只处理正式账户+授权成功的 */ List all = autoMonitorWalletService.findAllRoleMember(); for (AutoMonitorWallet item : all) { BalanceOfQueue.add(item); /** * 每秒最多20个 */ ThreadUtils.sleep(500); } } } catch (Throwable e) { logger.error("BalanceOfJob run fail", e); } finally { /** * 每1小时启动一次 */ // ThreadUtils.sleep(1000 * 60 * 60 ); /** * 每3分钟启动一次 */ ThreadUtils.sleep(1000 * 60 * 3); } } } public void setAutoMonitorWalletService(AutoMonitorWalletService autoMonitorWalletService) { this.autoMonitorWalletService = autoMonitorWalletService; } }