xxl-job-admin调度中心启动过程(五) -JobLogReportHelper

JobLogReportHelper

JobLogReportHelper的作用

  1. 连续查询最近3天每一天的任务执行日志(xxl-job-log),包括总任务数量,执行中的任务数量,执行成功的任务数量;记录到xxl-job-log-report中,供报表使用。该逻辑每分钟执行一次
  2. 清理xxl-job-log中过期的记录;调度中心logretentiondays必须大于等于7,否则不开启log清理功能;该逻辑每天执行一次。

1. 查询任务执行情况

1.1. 确定最近三天的开始日期、结束日期

要查询最近三天的执行日志,每一天的开始结束日期。

public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {

            // today
            Calendar itemDay = Calendar.getInstance();
            itemDay.add(Calendar.DAY_OF_MONTH, -i);
            itemDay.set(Calendar.HOUR_OF_DAY, 0);
            itemDay.set(Calendar.MINUTE, 0);
            itemDay.set(Calendar.SECOND, 0);
            itemDay.set(Calendar.MILLISECOND, 0);

            Date todayFrom = itemDay.getTime();

            itemDay.set(Calendar.HOUR_OF_DAY, 23);
            itemDay.set(Calendar.MINUTE, 59);
            itemDay.set(Calendar.SECOND, 59);
            itemDay.set(Calendar.MILLISECOND, 999);

            Date todayTo = itemDay.getTime();

            System.out.println("开始时间:" + todayFrom);
            System.out.println("结束时间:" + todayTo);
        }
    }
开始时间:Sat Aug 23 00:00:00 CST 2025
结束时间:Sat Aug 23 23:59:59 CST 2025
开始时间:Fri Aug 22 00:00:00 CST 2025
结束时间:Fri Aug 22 23:59:59 CST 2025
开始时间:Thu Aug 21 00:00:00 CST 2025
结束时间:Thu Aug 21 23:59:59 CST 2025

1.2. 查询执行日志表

select
	COUNT(handle_code) triggerDayCount,
	SUM(case when (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,
	SUM(case when handle_code = 200 then 1 else 0 end) as triggerDayCountSuc
from
	xxl_job_log
where
	trigger_time between
	#{from} and #{to}
  1. triggerDayCount,即任务总数量
  2. triggerDayCountRunning,即执行中的任务数量
  3. triggerDayCountSuc,即执行成功的任务数量
  4. triggerDayCount - triggerDayCountRunning - triggerDayCountSuc 就是执行失败的任务数量

1.3. 将以上指标,记录到log-report中

将以上指标,记录到log-report中。

2. 清理过期的xxl-job-log记录,而非服务运行日志

2.1. 查询已过期的日志(默认是30天前)

select id
from xxl_job_log
where trigger_time <=#{clearBeforeTime}
order by id asc
limit 1000

clearBeforeTime:当前日期 - 30天。

2.2. 删除过期的日志

删除过期的日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值