| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.concurrent.atomic.AtomicBoolean; |
| | | import java.util.concurrent.locks.Lock; |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | private final Lock subscriptionLock = new ReentrantLock(); |
| | | |
| | | boolean ballot = true; |
| | | private final AtomicBoolean ballot = new AtomicBoolean(false); |
| | | |
| | | |
| | | @Scheduled(cron = "0 0/10 * * * ?") |
| | | public void ballot() { |
| | | if (ballot) |
| | | ballot = false; |
| | | else return; |
| | | if (ballot.get()) { // 判断任务是否在处理中 |
| | | return; |
| | | } |
| | | if (ballotLock.tryLock()) { |
| | | try { |
| | | ballot.set(true); // 设置处理中标识为true |
| | | log.info("新股上市转持仓定时任务--------->开始"); |
| | | List<StockSubscribe> stockSubscribes = stockSubscribeMapper.selectList(new LambdaQueryWrapper<StockSubscribe>() |
| | | .lt(StockSubscribe::getListDate, DateUtil.date())); |
| | |
| | | log.error("新股上市转持仓定时任务发生异常", e); |
| | | } finally { |
| | | ballotLock.unlock(); |
| | | ballot = true; |
| | | ballot.set(false); // 设置处理中标识为false |
| | | } |
| | | } else { |
| | | log.info("新股上市转持仓定时任务--------->上次任务还未执行完成,本次任务忽略"); |
| | | } |
| | | } |
| | | |
| | | boolean subscription = true; |
| | | private final AtomicBoolean subscription = new AtomicBoolean(false); |
| | | |
| | | @Scheduled(cron = "0 0/1 * * * ?") |
| | | public void subscription() { |
| | | if (subscription) |
| | | subscription = false; |
| | | else return; |
| | | if (subscription.get()) { // 判断任务是否在处理中 |
| | | return; |
| | | } |
| | | if (subscriptionLock.tryLock()) { |
| | | try { |
| | | subscription.set(true); // 设置处理中标识为true |
| | | log.info("自动转已认缴--------->开始"); |
| | | List<UserStockSubscribe> userStockSubscribes = userStockSubscribeMapper.selectList(new LambdaQueryWrapper<UserStockSubscribe>() |
| | | .eq(UserStockSubscribe::getStatus, 3)); |
| | |
| | | log.error("自动转已认缴定时任务发生异常", e); |
| | | } finally { |
| | | subscriptionLock.unlock(); |
| | | subscription = true; |
| | | subscription.set(false); // 设置处理中标识为false |
| | | } |
| | | } else { |
| | | log.info("自动转已认缴定时任务--------->上次任务还未执行完成,本次任务忽略"); |