You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2022/04/12 11:27:54 UTC
[incubator-linkis] branch dev-1.1.2 updated: add undone job query cache and add api /listundone (#1949)
This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.1.2
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.1.2 by this push:
new 9f91eee45 add undone job query cache and add api /listundone (#1949)
9f91eee45 is described below
commit 9f91eee45dcee74c4a55b6c7a25d99b733e9b1cd
Author: legendtkl <ta...@gmail.com>
AuthorDate: Tue Apr 12 19:27:49 2022 +0800
add undone job query cache and add api /listundone (#1949)
* add undone job query cache and add api /listundone
* address review comment
---
.../conf/linkis-ps-publicservice.properties | 2 +
.../linkis/jobhistory/cache/QueryCacheManager.java | 2 +
.../cache/impl/DefaultQueryCacheManager.java | 75 +++++++++++++++++++++
.../cache/impl/ScheduledRefreshUndoneJob.java | 45 +++++++++++++
.../JobHistoryConfiguration.java} | 15 ++---
.../linkis/jobhistory/dao/JobHistoryMapper.java | 15 ++++-
.../jobhistory/dao/impl/JobHistoryMapper.xml | 15 +++++
.../jobhistory/restful/api/QueryRestfulApi.java | 77 +++++++++++++++++++++-
.../jobhistory/service/JobHistoryQueryService.java | 2 +-
.../service/impl/JobHistoryQueryServiceImpl.scala | 10 +--
10 files changed, 241 insertions(+), 17 deletions(-)
diff --git a/assembly-combined-package/assembly-combined/conf/linkis-ps-publicservice.properties b/assembly-combined-package/assembly-combined/conf/linkis-ps-publicservice.properties
index f6f712928..e8376381b 100644
--- a/assembly-combined-package/assembly-combined/conf/linkis-ps-publicservice.properties
+++ b/assembly-combined-package/assembly-combined/conf/linkis-ps-publicservice.properties
@@ -29,6 +29,8 @@ hive.meta.user=
hive.meta.password=
# associated with the logged-in user when querying metadata:default value is true
#linkis.metadata.hive.permission.with-login-user-enabled
+#wds.linkis.jobhistory.undone.job.minimum.id=0
+#wds.linkis.jobhistory.undone.job.refreshtime.daily=00:15
##Spring
spring.server.port=9105
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java
index 65d3633d2..80cc74f11 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java
@@ -26,4 +26,6 @@ public interface QueryCacheManager {
void cleanAll();
void refreshAll();
+
+ void refreshUndoneTask();
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/DefaultQueryCacheManager.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/DefaultQueryCacheManager.java
index 78f2b805c..74501fcf0 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/DefaultQueryCacheManager.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/DefaultQueryCacheManager.java
@@ -18,6 +18,9 @@
package org.apache.linkis.jobhistory.cache.impl;
import org.apache.linkis.jobhistory.cache.QueryCacheManager;
+import org.apache.linkis.jobhistory.conf.JobHistoryConfiguration;
+import org.apache.linkis.jobhistory.dao.JobHistoryMapper;
+import org.apache.linkis.jobhistory.entity.JobHistory;
import org.apache.linkis.jobhistory.util.QueryConfig;
import org.springframework.beans.factory.InitializingBean;
@@ -25,6 +28,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.stereotype.Component;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.collect.Maps;
@@ -32,6 +37,8 @@ import org.quartz.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Arrays;
+import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@@ -42,9 +49,13 @@ public class DefaultQueryCacheManager implements QueryCacheManager, Initializing
@Autowired private SchedulerFactoryBean schedulerFactoryBean;
+ @Autowired private JobHistoryMapper jobHistoryMapper;
+
private Map<String, Cache<String, UserTaskResultCache>> engineUserCaches =
Maps.newConcurrentMap();
+ private Long undoneTaskMinId = JobHistoryConfiguration.UNDONE_JOB_MINIMUM_ID.getValue();
+
@Override
public void afterPropertiesSet() throws Exception {
Scheduler scheduler = schedulerFactoryBean.getScheduler();
@@ -84,6 +95,41 @@ public class DefaultQueryCacheManager implements QueryCacheManager, Initializing
logger.info("Submitted cache 00:00 refresh job.");
}
+ int hour = 0;
+ int minute = 15;
+
+ try {
+ String refreshTime = JobHistoryConfiguration.UNDONE_JOB_REFRESH_TIME_DAILY.getValue();
+ String[] parts = refreshTime.split(":");
+ if (parts.length != 2) {
+ logger.error(
+ "Invalid UNDONE_JOB_REFRESH_TIME_DAILY value: {}. It should be the format of '00:15'. Will use the default value '00:15'",
+ refreshTime);
+ }
+ hour = Integer.parseInt(parts[0]);
+ minute = Integer.parseInt(parts[1]);
+ } catch (Exception ignored) {
+ logger.warn(
+ "parse the config 'wds.linkis.jobhistory.undone.job.refreshtime.daily' failed. ",
+ ignored);
+ }
+
+ CronScheduleBuilder refreshUndoneJobBuilder =
+ CronScheduleBuilder.dailyAtHourAndMinute(hour, minute);
+ JobDetail refreshUndoneJobDetail =
+ JobBuilder.newJob(ScheduledRefreshUndoneJob.class)
+ .withIdentity("ScheduledRefreshUndoneJob")
+ .storeDurably()
+ .build();
+ refreshUndoneJobDetail.getJobDataMap().put(QueryCacheManager.class.getName(), this);
+ Trigger refreshTrigger =
+ TriggerBuilder.newTrigger()
+ .withIdentity("ScheduledRefreshUndoneJob")
+ .withSchedule(refreshUndoneJobBuilder)
+ .build();
+ scheduler.scheduleJob(refreshUndoneJobDetail, refreshTrigger);
+ logger.info("Submitted cache 00:15 refresh undone job.");
+
if (!scheduler.isShutdown()) {
scheduler.start();
}
@@ -119,6 +165,31 @@ public class DefaultQueryCacheManager implements QueryCacheManager, Initializing
foreach(UserTaskResultCache::refresh);
}
+ @Override
+ public void refreshUndoneTask() {
+ PageHelper.startPage(1, 10);
+ List<JobHistory> queryTasks = null;
+ try {
+ queryTasks =
+ jobHistoryMapper.searchWithIdOrderAsc(
+ undoneTaskMinId,
+ null,
+ Arrays.asList("Running", "Inited", "Scheduled"),
+ null,
+ null,
+ null);
+ } finally {
+ PageHelper.clearPage();
+ }
+
+ PageInfo<JobHistory> pageInfo = new PageInfo<>(queryTasks);
+ List<JobHistory> list = pageInfo.getList();
+ if (!list.isEmpty()) {
+ undoneTaskMinId = list.get(0).getId();
+ logger.info("Refreshing undone tasks, minimum id: {}", undoneTaskMinId);
+ }
+ }
+
private void foreach(Consumer<UserTaskResultCache> consumer) {
for (Cache<String, UserTaskResultCache> cacheContainer : engineUserCaches.values()) {
for (UserTaskResultCache cache : cacheContainer.asMap().values()) {
@@ -130,4 +201,8 @@ public class DefaultQueryCacheManager implements QueryCacheManager, Initializing
private Cache<String, UserTaskResultCache> createUserCaches() {
return CacheBuilder.newBuilder().build();
}
+
+ public Long getUndoneTaskMinId() {
+ return undoneTaskMinId;
+ }
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/ScheduledRefreshUndoneJob.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/ScheduledRefreshUndoneJob.java
new file mode 100644
index 000000000..a10f36de2
--- /dev/null
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/impl/ScheduledRefreshUndoneJob.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.linkis.jobhistory.cache.impl;
+
+import org.apache.linkis.jobhistory.cache.QueryCacheManager;
+
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ScheduledRefreshUndoneJob extends QuartzJobBean {
+ private static Logger logger = LoggerFactory.getLogger(ScheduledRefreshUndoneJob.class);
+
+ @Override
+ protected void executeInternal(JobExecutionContext jobExecutionContext)
+ throws JobExecutionException {
+ logger.info("Started cache refresh job.");
+ QueryCacheManager queryCacheManager =
+ (QueryCacheManager)
+ jobExecutionContext
+ .getJobDetail()
+ .getJobDataMap()
+ .get(QueryCacheManager.class.getName());
+ queryCacheManager.refreshUndoneTask();
+ logger.info("Finished cache refresh undone job.");
+ }
+}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/conf/JobHistoryConfiguration.java
similarity index 65%
copy from linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java
copy to linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/conf/JobHistoryConfiguration.java
index 65d3633d2..5f588ec77 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/cache/QueryCacheManager.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/conf/JobHistoryConfiguration.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package org.apache.linkis.jobhistory.cache;
+package org.apache.linkis.jobhistory.conf;
-import org.apache.linkis.jobhistory.cache.impl.UserTaskResultCache;
+import org.apache.linkis.common.conf.CommonVars;
-public interface QueryCacheManager {
+public class JobHistoryConfiguration {
+ public static CommonVars<Long> UNDONE_JOB_MINIMUM_ID =
+ CommonVars.apply("wds.linkis.jobhistory.undone.job.minimum.id", 0L);
- UserTaskResultCache getCache(String user, String engineType);
-
- void cleanAll();
-
- void refreshAll();
+ public static CommonVars<String> UNDONE_JOB_REFRESH_TIME_DAILY =
+ CommonVars.apply("wds.linkis.jobhistory.undone.job.refreshtime.daily", "00:15");
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/JobHistoryMapper.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/JobHistoryMapper.java
index 30d128d08..12214723e 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/JobHistoryMapper.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/JobHistoryMapper.java
@@ -33,6 +33,15 @@ public interface JobHistoryMapper {
void updateJobHistory(JobHistory jobReq);
List<JobHistory> search(
+ @Param("id") Long id,
+ @Param("umUser") String username,
+ @Param("status") List<String> status,
+ @Param("startDate") Date startDate,
+ @Param("endDate") Date endDate,
+ @Param("engineType") String engineType,
+ @Param("startId") Long startId);
+
+ List<JobHistory> searchWithIdOrderAsc(
@Param("id") Long id,
@Param("umUser") String username,
@Param("status") List<String> status,
@@ -48,7 +57,8 @@ public interface JobHistoryMapper {
@Param("status") List<String> status,
@Param("startDate") Date startDate,
@Param("endDate") Date endDate,
- @Param("engineType") String engineType);
+ @Param("engineType") String engineType,
+ @Param("startId") Long startId);
List<JobHistory> searchWithCreatorOnly(
@Param("id") Long id,
@@ -58,7 +68,8 @@ public interface JobHistoryMapper {
@Param("status") List<String> status,
@Param("startDate") Date startDate,
@Param("endDate") Date endDate,
- @Param("engineType") String engineType);
+ @Param("engineType") String engineType,
+ @Param("startId") Long startId);
String selectJobHistoryStatusForUpdate(Long jobId);
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/impl/JobHistoryMapper.xml b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/impl/JobHistoryMapper.xml
index 037c90cf9..2a2823c1f 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/impl/JobHistoryMapper.xml
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/dao/impl/JobHistoryMapper.xml
@@ -88,10 +88,23 @@
<if test="engineType != null">and engine_type = #{engineType}</if>
<if test="startDate != null">and created_time >= #{startDate} AND created_time <![CDATA[<=]]> #{endDate}</if>
<if test="status != null">and <foreach collection="status" item="element" close=")" separator="," open="status in (">#{element}</foreach></if>
+ <if test="startId != null">and id >= #{startId}</if>
</where>
ORDER BY linkis_ps_job_history_group_history.created_time DESC
</select>
+ <select id="searchWithIdOrderAsc" useCache="true" resultMap="jobHistoryMap" >
+ /*slave*/ SELECT * FROM linkis_ps_job_history_group_history
+ <where>
+ <if test="id != null">id >= #{id}</if>
+ <if test="umUser != null">and submit_user = #{umUser}</if>
+ <if test="engineType != null">and engine_type = #{engineType}</if>
+ <if test="startDate != null">and created_time >= #{startDate} AND created_time <![CDATA[<=]]> #{endDate}</if>
+ <if test="status != null">and <foreach collection="status" item="element" close=")" separator="," open="status in (">#{element}</foreach></if>
+ </where>
+ ORDER BY linkis_ps_job_history_group_history.id
+ </select>
+
<select id="searchWithUserCreator" useCache="true" resultMap="jobHistoryMap" >
/*slave*/ SELECT * FROM linkis_ps_job_history_group_history
<where>
@@ -103,6 +116,7 @@
<if test="userCreatorKey != null and userCreatorValue != null">
and LOCATE('"${userCreatorKey}":"${userCreatorValue}', labels) > 0
</if>
+ <if test="startId != null">and id >= #{startId}</if>
</where>
ORDER BY linkis_ps_job_history_group_history.created_time DESC
</select>
@@ -118,6 +132,7 @@
<if test="userCreatorKey != null and creator != null">
and labels like '%"${userCreatorKey}":"%-${creator}%'
</if>
+ <if test="startId != null">and id >= #{startId}</if>
</where>
ORDER BY linkis_ps_job_history_group_history.created_time DESC
</select>
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
index 051d2758c..a6cb35752 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
@@ -19,6 +19,7 @@ package org.apache.linkis.jobhistory.restful.api;
import org.apache.linkis.governance.common.constant.job.JobRequestConstants;
import org.apache.linkis.governance.common.entity.job.QueryException;
+import org.apache.linkis.jobhistory.cache.impl.DefaultQueryCacheManager;
import org.apache.linkis.jobhistory.conf.JobhistoryConfiguration;
import org.apache.linkis.jobhistory.conversions.TaskConversions;
import org.apache.linkis.jobhistory.dao.JobDetailMapper;
@@ -53,6 +54,8 @@ public class QueryRestfulApi {
@Autowired private JobHistoryQueryService jobHistoryQueryService;
@Autowired private JobDetailMapper jobDetailMapper;
+ @Autowired private DefaultQueryCacheManager queryCacheManager;
+
@RequestMapping(path = "/governanceStationAdmin", method = RequestMethod.GET)
public Message governanceStationAdmin(HttpServletRequest req) {
String username = ModuleUserUtils.getOperationUser(req, "governanceStationAdmin");
@@ -163,7 +166,8 @@ public class QueryRestfulApi {
creator,
sDate,
eDate,
- executeApplicationName);
+ executeApplicationName,
+ null);
} finally {
PageHelper.clearPage();
}
@@ -190,4 +194,75 @@ public class QueryRestfulApi {
.data(TaskConstant.TASKS, vos)
.data(JobRequestConstants.TOTAL_PAGE(), total);
}
+
+ /** Method list should not contain subjob, which may cause performance problems. */
+ @RequestMapping(path = "/listundone", method = RequestMethod.GET)
+ public Message listundone(
+ HttpServletRequest req,
+ @RequestParam(value = "startDate", required = false) Long startDate,
+ @RequestParam(value = "endDate", required = false) Long endDate,
+ @RequestParam(value = "status", required = false) String status,
+ @RequestParam(value = "pageNow", required = false) Integer pageNow,
+ @RequestParam(value = "pageSize", required = false) Integer pageSize,
+ @RequestParam(value = "startTaskID", required = false) Long taskID,
+ @RequestParam(value = "engineType", required = false) String engineType,
+ @RequestParam(value = "creator", required = false) String creator)
+ throws IOException, QueryException {
+ String username = SecurityFilter.getLoginUsername(req);
+ if (StringUtils.isEmpty(status)) {
+ status = "Running,Inited,Scheduled";
+ }
+ if (StringUtils.isEmpty(pageNow)) {
+ pageNow = 1;
+ }
+ if (StringUtils.isEmpty(pageSize)) {
+ pageSize = 20;
+ }
+ if (endDate == null) {
+ endDate = System.currentTimeMillis();
+ }
+ if (startDate == null) {
+ startDate = 0L;
+ }
+ if (StringUtils.isEmpty(creator)) {
+ creator = null;
+ }
+ Date sDate = new Date(startDate);
+ Date eDate = new Date(endDate);
+ if (sDate.getTime() == eDate.getTime()) {
+ Calendar instance = Calendar.getInstance();
+ instance.setTimeInMillis(endDate);
+ instance.add(Calendar.DAY_OF_MONTH, 1);
+ eDate = new Date(instance.getTime().getTime()); // todo check
+ }
+ List<JobHistory> queryTasks = null;
+ PageHelper.startPage(pageNow, pageSize);
+ try {
+ queryTasks =
+ jobHistoryQueryService.search(
+ taskID,
+ username,
+ status,
+ creator,
+ sDate,
+ eDate,
+ engineType,
+ queryCacheManager.getUndoneTaskMinId());
+ } finally {
+ PageHelper.clearPage();
+ }
+
+ PageInfo<JobHistory> pageInfo = new PageInfo<>(queryTasks);
+ List<JobHistory> list = pageInfo.getList();
+ long total = pageInfo.getTotal();
+ List<QueryTaskVO> vos = new ArrayList<>();
+ for (JobHistory jobHistory : list) {
+ QueryUtils.exchangeExecutionCode(jobHistory);
+ QueryTaskVO taskVO = TaskConversions.jobHistory2TaskVO(jobHistory, null);
+ vos.add(taskVO);
+ }
+ return Message.ok()
+ .data(TaskConstant.TASKS, vos)
+ .data(JobRequestConstants.TOTAL_PAGE(), total);
+ }
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/JobHistoryQueryService.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/JobHistoryQueryService.java
index fba45ac03..cd41a0f7f 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/JobHistoryQueryService.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/JobHistoryQueryService.java
@@ -38,7 +38,7 @@ public interface JobHistoryQueryService {
JobHistory getJobHistoryByIdAndName(Long jobID, String userName);
- List<JobHistory> search(Long jobId, String username, String creator, String status, Date sDate, Date eDate, String executionApplicationName);
+ List<JobHistory> search(Long jobId, String username, String creator, String status, Date sDate, Date eDate, String executionApplicationName, Long startJobId);
JobHistory searchOne(Long jobId, Date sDate, Date eDate);
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/impl/JobHistoryQueryServiceImpl.scala b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/impl/JobHistoryQueryServiceImpl.scala
index 08faaf360..c414df07f 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/impl/JobHistoryQueryServiceImpl.scala
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/scala/org/apache/linkis/jobhistory/service/impl/JobHistoryQueryServiceImpl.scala
@@ -214,14 +214,14 @@ class JobHistoryQueryServiceImpl extends JobHistoryQueryService with Logging {
if (jobHistoryList.isEmpty) null else jobHistoryList.get(0)
}
- override def search(jobId: java.lang.Long, username: String, status: String, creator: String, sDate: Date, eDate: Date, engineType: String): util.List[JobHistory] = {
+ override def search(jobId: java.lang.Long, username: String, status: String, creator: String, sDate: Date, eDate: Date, engineType: String, startJobId: java.lang.Long): util.List[JobHistory] = {
import scala.collection.JavaConversions._
val split: util.List[String] = if (status != null) status.split(",").toList else null
val result = if (StringUtils.isBlank(creator)) {
- jobHistoryMapper.search(jobId, username, split, sDate, eDate, engineType)
+ jobHistoryMapper.search(jobId, username, split, sDate, eDate, engineType, startJobId)
} else if(StringUtils.isBlank(username)) {
val fakeLabel = new UserCreatorLabel
- jobHistoryMapper.searchWithCreatorOnly(jobId, username, fakeLabel.getLabelKey, creator, split, sDate, eDate, engineType)
+ jobHistoryMapper.searchWithCreatorOnly(jobId, username, fakeLabel.getLabelKey, creator, split, sDate, eDate, engineType, startJobId)
} else {
val fakeLabel = new UserCreatorLabel
fakeLabel.setUser(username)
@@ -231,7 +231,7 @@ class JobHistoryQueryServiceImpl extends JobHistoryQueryService with Logging {
t => info("input user or creator is not correct", t)
throw t
}
- jobHistoryMapper.searchWithUserCreator(jobId, username, fakeLabel.getLabelKey, userCreator, split, sDate, eDate, engineType)
+ jobHistoryMapper.searchWithUserCreator(jobId, username, fakeLabel.getLabelKey, userCreator, split, sDate, eDate, engineType, startJobId)
}
result
}
@@ -251,7 +251,7 @@ class JobHistoryQueryServiceImpl extends JobHistoryQueryService with Logging {
override def searchOne(jobId: lang.Long, sDate: Date, eDate: Date): JobHistory = {
Iterables.getFirst(
- jobHistoryMapper.search(jobId, null, null, sDate, eDate, null),
+ jobHistoryMapper.search(jobId, null, null, sDate, eDate, null, null),
{
val queryJobHistory = new QueryJobHistory
queryJobHistory.setId(jobId)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org