Xxljob示例

@Component
@Slf4j
public class CheckTimeJob {

    @Resource
    ScheduleCheckService scheduleCheckService;

    @Resource
    ComplainCheckService complainCheckService;

    @XxlJob("checkTime")
    public void checkTimeJob() {
        List<ThemisAgingCheck> themisAgingChecks = scheduleCheckService.getPendCheck(1, 200);
        int shardIndex = XxlJobHelper.getShardIndex();
        if (CollUtil.isNotEmpty(themisAgingChecks)) {
            log.info("查找并溢出单子数量,{}", themisAgingChecks.size());
            //如果有 正在考核的 并超时的单子 开始溢出
            for (ThemisAgingCheck themisAgingCheck : themisAgingChecks) {
                int shardLong = (int) (Long.parseLong(themisAgingCheck.getComplainId()) % XxlJobHelper.getShardTotal());
                String complainId = themisAgingCheck.getComplainId();
                log.info("CheckTimeJob--CurrentShardLong:{},Total:{},CurrentIndex:{},ComplainId:{}",
                        shardLong, XxlJobHelper.getShardTotal(), shardIndex, themisAgingCheck.getComplainId());
                if (StringUtils.isNotBlank(complainId) && shardIndex == shardLong) {
                    long start = System.currentTimeMillis();
                    log.info("Process overflow start...");
                    try {
                        //验证时效超时是否重复  如果重复 时效无效化  如果不重复继续执行
                        String actionTypeByRuleType = OverFlowActionEnum.getActionTypeByRuleType(themisAgingCheck.getRuleType());
                        //过滤溪鸟单
                        if (themisAgingCheck.getBusinessType().intValue() == 11
                                || CheckRuleTypeEnum.REMINDER.getType().equals(themisAgingCheck.getRuleType())
                                || complainCheckService.replyActionException(themisAgingCheck.getCheckTime(), themisAgingCheck.getComplainId(), actionTypeByRuleType, themisAgingCheck.getCheckSiteId())) {
                            //不重复
                            complainCheckService.overFlow(themisAgingCheck);
                        } else {
                            //重复
                            themisAgingCheck.setCheckStatus(2);
                            complainCheckService.updateCheck(themisAgingCheck);
                        }

                    } catch (Exception e) {
                        log.error("checkTimeJob Exception·········complainId is {},{}", complainId, ExceptionUtils.getStackTrace(e));
                    }
                    log.info("Process overflow end, cost time:{}s", (System.currentTimeMillis() - start) / 1000);
                }
            }
        }
        XxlJobHelper.handleSuccess();
    }


}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值