0
我有一個要求,使用以下搜索過濾器和結果排序來搜索Spring批量作業執行:名稱,退出狀態,開始日期,結束日期。查找彈簧按執行日期篩選和排序批量作業執行
的JobExplorer API是相當薄的,並且僅使用findJobInstancesByJobName和getJobExecutions意味着獲得整個組在存儲器作業執行的(500.000+),然後過濾/排序並返回一個頁面的25,這是不可能的。
除了直接對Spring批處理表執行本機查詢,還有其他方式來搜索作業執行嗎?
編輯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. Spring Batch Admin不提供使用指定標準進行搜索的可能性,或者至少我無法找到提供搜索所有已在X日期運行的作業的網頁/ json服務。 2.我有一個自定義的Web應用程序。問題是如何調用現有的API:JobExplorer,JobRepository,JobInstanceDao或任何其他類,以便能夠使用上述條件進行搜索。 –
你用過Spring-batch表嗎? –
我有Spring批處理表,但我想避免,如果可能的話,對這些表進行本機查詢。這將使我的代碼依賴於spring批處理的版本(例如,他們可能會更改列名稱)。但那肯定是一個選擇。 –