zoukankan      html  css  js  c++  java
  • easy-batch job 报告

    JobReport api

    easy-batch 包含了一个在batch 处理阶段的metrics 以及batch完成之后的报告

    • 包含的信息
    job启动以及结束的时间
    job的状态
    读取的record
    写入的record
    过滤的record
    错误数

    自定义metrics

    通过JobMetrics的addMetric我们可以添加自己的metrics,但是为了访问JobMetrics我们需要实现JobListener 接口

    • 参考demo
    public class RecordProcessingTimeCalculator implements PipelineListener, JobListener {
        private long startTime;
        private long nbRecords;
        private long recordProcessingTimesSum;
        @Override
        public Record beforeRecordProcessing(Record record) {
            nbRecords++;
            startTime = System.currentTimeMillis();
            return record;
        }
        @Override
        public void afterRecordProcessing(Record input, Record output) {
            recordProcessingTimesSum += System.currentTimeMillis() - startTime;
        }
        @Override
        public void onRecordProcessingException(Record record, Throwable throwable) {
            recordProcessingTimesSum += System.currentTimeMillis() - startTime;
        }
        @Override
        public void afterJobEnd(JobReport jobReport) {
            jobReport.getMetrics().addMetric(
                "Record processing time average (in ms)",
                 (double)recordProcessingTimesSum / (double)nbRecords);
        }
    }

    合并job的报告

    很多时候我们是并行的运行job,但是需要获取之后的结果,那么可以使用合并报告的功能,代码上
    我们可以通过JobReportMerger 来处理
    参考图

    • 提供的metrics
     
    启动时间(基于最小并性能报告)
    结束时间(基于最大并并行报告)
    总读取record数(并行报告的总和)
    总写入record数(并行写入报告的总和)
    总过滤record数(并行报告过滤的总和)
    总错误record数(并行报告过滤的总和)
    最终的状态(COMPLETED,所有都完成,FAILED有一个失败了)
    最后的名称为job名称的聚合
    • 代码调用
    JobReportMerger reportMerger = new DefaultJobReportMerger();
    JobReport finalReport = reportMerger.mergeReports(report1, report2);

    参考资料

    https://github.com/j-easy/easy-batch/wiki/job-reporting

  • 相关阅读:
    解决问题redis问题:ERR Client sent AUTH, but no password is set
    关于使用Git的几点小技巧
    解决linux中使用git,ssh每次都要输入密码
    No package tomcatX available. 解决办法
    关于spring定时任务被多次调用的问题
    vue 非常规跨域实现 proxyTable 设置及依赖
    css 3 获取设备宽度的方法
    ionic 文本域文字输入监听事件
    Ionic3学习基础之Input组件
    微信小程序tabBar使用
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12730005.html
Copyright © 2011-2022 走看看