查找按执行日期筛选和排序的Spring Batch作业执行

时间:2016-02-17 09:58:38

标签: spring spring-batch

我需要使用以下搜索过滤器和结果排序搜索Spring Batch作业执行:名称,退出状态,开始日期,结束日期。

JobExplorer API非常精简,仅使用findJobInstancesByJobName和getJobExecutions意味着在内存中获取整套作业执行(500.000+),然后过滤/排序并返回25页,这是不可能的。

除了直接对Spring Batch表进行本机查询外,还有其他方法可以搜索作业执行吗?

编辑1:

到目前为止,我有以下代码:

    List<JobExecution> findJobExecutions(String jobName, ExitStatus status, Date start, Date end){
            // How to filter by status, and date without getting all in memory?

            int startRow = 0;
            int count = 100000;

            List<JobInstance> instances = jobExplorer.findJobInstancesByJobName(jobName, startRow, count);
            List<JobExecution> result = instances.stream().map(jobExplorer::getJobExecutions).flatMap(List::stream).collect(Collectors.toList());
    }

SimpleJobExplorer link

1 个答案:

答案 0 :(得分:0)

两个选项

  1. 您可以Spring Batch Admin console获取作业监控和作业执行状态。有关安装和使用的信息,请参阅上述链接。
  2. 您可以创建自定义Web应用程序来监控您的作业执行状态。为了有效使用,建议使用documentation中给出的弹簧批表和模式。