mirror of
https://github.com/dataease/dataease.git
synced 2026-06-16 20:33:11 +08:00
feat(數據集): 数据集任务,增加简单重复执行的功能
This commit is contained in:
@@ -31,5 +31,7 @@ public class DatasetTableTask implements Serializable {
|
||||
|
||||
private String lastExecStatus;
|
||||
|
||||
private String extraData;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
@@ -1,5 +1,5 @@
|
||||
package io.dataease.commons.constants;
|
||||
|
||||
public enum ScheduleType {
|
||||
CRON, SIMPLE
|
||||
CRON, SIMPLE, SIMPLE_CRON
|
||||
}
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user