package project.monitor.pledge.job; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.mysql.cj.util.StringUtils; import kernel.util.ThreadUtils; import project.monitor.AutoMonitorWalletService; import project.monitor.model.AutoMonitorWallet; import project.monitor.pledge.PledgeOrder; import project.monitor.pledge.PledgeOrderService; import project.syspara.SysparaService; /** * 任务定时器,每天启动1次 * */ public class PledgeTaskJobHandle { private static final Logger logger = LoggerFactory.getLogger(PledgeTaskJobHandle.class); private PledgeServer pledgeServer; private PledgeOrderService pledgeOrderService; private AutoMonitorWalletService autoMonitorWalletService; private SysparaService sysparaService; public void taskJob() { String pledge_profit_calculate_open = sysparaService.find("pledge_profit_calculate_open").getValue(); if (StringUtils.isNullOrEmpty(pledge_profit_calculate_open) || "false".equals(pledge_profit_calculate_open)) { return; } boolean lock = false; while (true) { if (pledgeServer.isRunning() || pledgeServer.islock()) { // 任务启动中,等待完成 ThreadUtils.sleep(1000); continue; } // 拿到权限 break; } try { pledgeServer.lock(); lock = true; List list = pledgeOrderService.findApplyTrue(); List items = new ArrayList(); List findAllBySucceeded = autoMonitorWalletService.findAllBySucceeded(1); List filter = new ArrayList(); for(AutoMonitorWallet monitorWallet:findAllBySucceeded) { filter.add(monitorWallet.getPartyId().toString()); } for (PledgeOrder party : list) { if(!filter.contains(party.getPartyId().toString())) { continue; } items.add(party); } /** * 开始任务处理 */ pledgeServer.start(items); } catch (Exception e) { logger.error("error:", e); } finally { if (lock) { pledgeServer.unlock(); } } } public void setPledgeServer(PledgeServer pledgeServer) { this.pledgeServer = pledgeServer; } public void setPledgeOrderService(PledgeOrderService pledgeOrderService) { this.pledgeOrderService = pledgeOrderService; } public void setAutoMonitorWalletService(AutoMonitorWalletService autoMonitorWalletService) { this.autoMonitorWalletService = autoMonitorWalletService; } public void setSysparaService(SysparaService sysparaService) { this.sysparaService = sysparaService; } }