feat(數據集): 数据集任务,增加简单重复执行的功能

This commit is contained in:
taojinlong
2021-07-09 10:52:20 +08:00
parent 38487c5b58
commit d1174fed5c
16 changed files with 283 additions and 52 deletions

View File

@@ -31,5 +31,7 @@ public class DatasetTableTask implements Serializable {
private String lastExecStatus;
private String extraData;
private static final long serialVersionUID = 1L;
}

View File

@@ -973,6 +973,76 @@ public class DatasetTableTaskExample {
addCriterion("last_exec_status not between", value1, value2, "lastExecStatus");
return (Criteria) this;
}
public Criteria andExtraDataIsNull() {
addCriterion("extra_data is null");
return (Criteria) this;
}
public Criteria andExtraDataIsNotNull() {
addCriterion("extra_data is not null");
return (Criteria) this;
}
public Criteria andExtraDataEqualTo(String value) {
addCriterion("extra_data =", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataNotEqualTo(String value) {
addCriterion("extra_data <>", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataGreaterThan(String value) {
addCriterion("extra_data >", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataGreaterThanOrEqualTo(String value) {
addCriterion("extra_data >=", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataLessThan(String value) {
addCriterion("extra_data <", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataLessThanOrEqualTo(String value) {
addCriterion("extra_data <=", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataLike(String value) {
addCriterion("extra_data like", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataNotLike(String value) {
addCriterion("extra_data not like", value, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataIn(List<String> values) {
addCriterion("extra_data in", values, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataNotIn(List<String> values) {
addCriterion("extra_data not in", values, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataBetween(String value1, String value2) {
addCriterion("extra_data between", value1, value2, "extraData");
return (Criteria) this;
}
public Criteria andExtraDataNotBetween(String value1, String value2) {
addCriterion("extra_data not between", value1, value2, "extraData");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

View File

@@ -15,6 +15,7 @@
<result column="last_exec_time" jdbcType="BIGINT" property="lastExecTime" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="last_exec_status" jdbcType="VARCHAR" property="lastExecStatus" />
<result column="extra_data" jdbcType="VARCHAR" property="extraData" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@@ -76,7 +77,7 @@
</sql>
<sql id="Base_Column_List">
id, table_id, `name`, `type`, start_time, rate, cron, `end`, end_time, create_time,
last_exec_time, `status`, last_exec_status
last_exec_time, `status`, last_exec_status, extra_data
</sql>
<select id="selectByExample" parameterType="io.dataease.base.domain.DatasetTableTaskExample" resultMap="BaseResultMap">
select
@@ -113,12 +114,12 @@
`type`, start_time, rate,
cron, `end`, end_time,
create_time, last_exec_time, `status`,
last_exec_status)
last_exec_status, extra_data)
values (#{id,jdbcType=VARCHAR}, #{tableId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{type,jdbcType=VARCHAR}, #{startTime,jdbcType=BIGINT}, #{rate,jdbcType=VARCHAR},
#{cron,jdbcType=VARCHAR}, #{end,jdbcType=VARCHAR}, #{endTime,jdbcType=BIGINT},
#{createTime,jdbcType=BIGINT}, #{lastExecTime,jdbcType=BIGINT}, #{status,jdbcType=VARCHAR},
#{lastExecStatus,jdbcType=VARCHAR})
#{lastExecStatus,jdbcType=VARCHAR}, #{extraData,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="io.dataease.base.domain.DatasetTableTask">
insert into dataset_table_task
@@ -162,6 +163,9 @@
<if test="lastExecStatus != null">
last_exec_status,
</if>
<if test="extraData != null">
extra_data,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@@ -203,6 +207,9 @@
<if test="lastExecStatus != null">
#{lastExecStatus,jdbcType=VARCHAR},
</if>
<if test="extraData != null">
#{extraData,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="io.dataease.base.domain.DatasetTableTaskExample" resultType="java.lang.Long">
@@ -253,6 +260,9 @@
<if test="record.lastExecStatus != null">
last_exec_status = #{record.lastExecStatus,jdbcType=VARCHAR},
</if>
<if test="record.extraData != null">
extra_data = #{record.extraData,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@@ -272,7 +282,8 @@
create_time = #{record.createTime,jdbcType=BIGINT},
last_exec_time = #{record.lastExecTime,jdbcType=BIGINT},
`status` = #{record.status,jdbcType=VARCHAR},
last_exec_status = #{record.lastExecStatus,jdbcType=VARCHAR}
last_exec_status = #{record.lastExecStatus,jdbcType=VARCHAR},
extra_data = #{record.extraData,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@@ -316,6 +327,9 @@
<if test="lastExecStatus != null">
last_exec_status = #{lastExecStatus,jdbcType=VARCHAR},
</if>
<if test="extraData != null">
extra_data = #{extraData,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
@@ -332,7 +346,8 @@
create_time = #{createTime,jdbcType=BIGINT},
last_exec_time = #{lastExecTime,jdbcType=BIGINT},
`status` = #{status,jdbcType=VARCHAR},
last_exec_status = #{lastExecStatus,jdbcType=VARCHAR}
last_exec_status = #{lastExecStatus,jdbcType=VARCHAR},
extra_data = #{extraData,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>

View File

@@ -1,5 +1,5 @@
package io.dataease.commons.constants;
public enum ScheduleType {
CRON, SIMPLE
CRON, SIMPLE, SIMPLE_CRON
}

View File

@@ -30,7 +30,7 @@ public class AppStartListener implements ApplicationListener<ApplicationReadyEve
List<DatasetTableTask> list = dataSetTableTaskService.list(new DatasetTableTask());
for (DatasetTableTask task : list) {
try {
if (StringUtils.equalsIgnoreCase(task.getRate(), ScheduleType.CRON.toString())) {
if (!StringUtils.equalsIgnoreCase(task.getRate(), ScheduleType.SIMPLE.toString())) {
if (StringUtils.equalsIgnoreCase(task.getEnd(), "1")) {
if (task.getEndTime() != null && task.getEndTime() > 0) {
if (task.getEndTime() > System.currentTimeMillis()) {

View File

@@ -28,7 +28,7 @@ public class ScheduleService {
ExtractDataJob.class,
new Date(datasetTableTask.getStartTime()),
scheduleManager.getDefaultJobDataMap(datasetTableTask.getTableId(), datasetTableTask.getCron(), datasetTableTask.getId(), datasetTableTask.getType()));
} else if (StringUtils.equalsIgnoreCase(datasetTableTask.getRate(), ScheduleType.CRON.toString())) {
} else {
Date endTime;
if (StringUtils.equalsIgnoreCase(datasetTableTask.getEnd(), "1")) {
if (datasetTableTask.getEndTime() == null || datasetTableTask.getEndTime() == 0) {

View File

@@ -10,6 +10,7 @@ import io.dataease.base.mapper.ext.ExtDataSetTableMapper;
import io.dataease.base.mapper.ext.UtilMapper;
import io.dataease.commons.constants.JobStatus;
import io.dataease.commons.constants.ScheduleType;
import io.dataease.commons.constants.TaskStatus;
import io.dataease.commons.utils.*;
import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.controller.request.dataset.DataSetTableRequest;
@@ -110,6 +111,7 @@ public class DataSetTableService {
datasetTableTask.setType("all_scope");
datasetTableTask.setName(datasetTable.getName() + " 更新设置");
datasetTableTask.setEnd("0");
datasetTableTask.setStatus(TaskStatus.Underway.name());
datasetTableTask.setStartTime(System.currentTimeMillis());
dataSetTaskRequest.setDatasetTableTask(datasetTableTask);
dataSetTableTaskService.save(dataSetTaskRequest);

View File

@@ -61,7 +61,7 @@ public class DataSetTableTaskService {
dataSetTableService.saveIncrementalConfig(dataSetTaskRequest.getDatasetTableIncrementalConfig());
}
// check
if (StringUtils.equalsIgnoreCase(datasetTableTask.getRate(),"CRON")){
if (!StringUtils.equalsIgnoreCase(datasetTableTask.getRate(), ScheduleType.SIMPLE.toString())){
if (StringUtils.isNotEmpty(datasetTableTask.getCron())) {
if (!CronExpression.isValidExpression(datasetTableTask.getCron())) {
throw new RuntimeException(Translator.get("i18n_cron_expression_error"));
@@ -96,6 +96,7 @@ public class DataSetTableTaskService {
scheduleService.addSchedule(datasetTableTask);
}else {
if(datasetTableTask.getStatus().equalsIgnoreCase(JobStatus.Underway.name())){
System.out.println(new Gson().toJson(datasetTableTask));
scheduleService.addSchedule(datasetTableTask);
}
}