Commit c8c0e154 by huangfusuper

修正任务不遵循cron表达式 重复调用问题

parent 764fe3ea
...@@ -30,9 +30,6 @@ public class JavaTaskAndLogServiceServiceImpl implements JavaTaskAndLogService { ...@@ -30,9 +30,6 @@ public class JavaTaskAndLogServiceServiceImpl implements JavaTaskAndLogService {
JavaTask updateJavaTask = new JavaTask(); JavaTask updateJavaTask = new JavaTask();
try { try {
BeanUtils.copyProperties(javaTask,updateJavaTask); BeanUtils.copyProperties(javaTask,updateJavaTask);
Date nextValidTimeAfter = new CronExpression(javaTask.getCron()).getNextValidTimeAfter(new Date());
System.out.println("------下次执行时间为,{}-----"+ DateUtil.format(nextValidTimeAfter,"yyyy-MM-dd HH:mm:ss"));
System.out.println("------当前线程为:-----"+ Thread.currentThread().getName()+"----hash---"+Thread.currentThread().hashCode());
updateJavaTask.setTriggerTime(new CronExpression(javaTask.getCron()).getNextValidTimeAfter(new Date(javaTask.getTriggerTime())).getTime()); updateJavaTask.setTriggerTime(new CronExpression(javaTask.getCron()).getNextValidTimeAfter(new Date(javaTask.getTriggerTime())).getTime());
} catch (ParseException e) { } catch (ParseException e) {
javaTask.setTriggerTime(999999999999999999L); javaTask.setTriggerTime(999999999999999999L);
......
...@@ -34,14 +34,14 @@ public class JavaTaskThreadRunHelper extends BaseThreadRunHelper { ...@@ -34,14 +34,14 @@ public class JavaTaskThreadRunHelper extends BaseThreadRunHelper {
long nowTime = System.currentTimeMillis(); long nowTime = System.currentTimeMillis();
List<JavaTask> javaTasks = javaTaskService.findAllByTriggerTimeLessThanEqual(nowTime + JAVA_TASK_WAIT_TIME); List<JavaTask> javaTasks = javaTaskService.findAllByTriggerTimeLessThanEqual(nowTime + JAVA_TASK_WAIT_TIME);
if(CollectionUtil.isNotEmpty(javaTasks)){ if(CollectionUtil.isNotEmpty(javaTasks)){
javaTasks.forEach(javaTask -> { for (JavaTask javaTask : javaTasks) {
//查看该任务的剩余执行次数 //查看该任务的剩余执行次数
Integer repeatCount = javaTask.getRepeatCount(); Integer repeatCount = javaTask.getRepeatCount();
if(repeatCount > 0){ if(repeatCount > 0){
javaTask.setRepeatCount(javaTask.getRepeatCount()-1); javaTask.setRepeatCount(javaTask.getRepeatCount()-1);
} }
javaTaskAndLogService.updateJavaTaskAndSaveLog(javaTask); javaTaskAndLogService.updateJavaTaskAndSaveLog(javaTask);
}); }
} }
return JAVA_TASK_WAIT_TIME; return JAVA_TASK_WAIT_TIME;
} }
......
...@@ -12,4 +12,15 @@ ...@@ -12,4 +12,15 @@
<artifactId>myth-dto-core</artifactId> <artifactId>myth-dto-core</artifactId>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
</dependencies>
</project> </project>
\ No newline at end of file
package com.byit.dto.plugin; package com.byit.dto.plugin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -11,6 +13,7 @@ import java.util.Date; ...@@ -11,6 +13,7 @@ import java.util.Date;
/** /**
* @author huangfu * @author huangfu
*/ */
@ApiModel
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
...@@ -19,122 +22,146 @@ public class JobTaskRunLog implements Serializable { ...@@ -19,122 +22,146 @@ public class JobTaskRunLog implements Serializable {
/** /**
* 日志ID * 日志ID
*/ */
@ApiModelProperty("日志ID")
private Integer logId; private Integer logId;
/** /**
* 当前节点的失败剩余重试次数 初始阶段为初始的重试次数 * 当前节点的失败剩余重试次数 初始阶段为初始的重试次数
*/ */
@ApiModelProperty("当前节点的失败剩余重试次数 初始阶段为初始的重试次数")
private Integer failedRemainingCount; private Integer failedRemainingCount;
/** /**
* 版本名称 * 版本名称
*/ */
@ApiModelProperty("版本名称")
private String versionName; private String versionName;
/** /**
* 任务流主键 * 任务流主键
*/ */
@ApiModelProperty("任务流主键")
private Integer flowId; private Integer flowId;
/** /**
* 所属任务流的名称 * 所属任务流的名称
*/ */
@ApiModelProperty("所属任务流的名称")
private String flowName; private String flowName;
/** /**
* 执行机主键 * 执行机主键
*/ */
@ApiModelProperty("执行机主键")
private Integer jobGroupId; private Integer jobGroupId;
/** /**
* 插件方节点key * 插件方节点key
*/ */
@ApiModelProperty("插件方节点key")
private String handlerName; private String handlerName;
/** /**
* 节点名称 * 节点名称
*/ */
@ApiModelProperty("节点名称")
private String nodeName; private String nodeName;
/** /**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流 * 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/ */
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual; private String isVirtual;
/** /**
* 运行结果 0运行中 1 成功 2 失败 3 补批成功 4 补批失败 5.kill 6.上级节点执行失败 * 运行结果 0运行中 1 成功 2 失败 3 补批成功 4 补批失败 5.kill 6.上级节点执行失败
*/ */
@ApiModelProperty("运行结果 0运行中 1 成功 2 失败 3 补批成功 4 补批失败 5.kill 6.上级节点执行失败")
private String runCode; private String runCode;
/** /**
* 运行参数 * 运行参数
*/ */
@ApiModelProperty("运行参数")
private String runParams; private String runParams;
/** /**
* 运行方式 1执行机运行,2插件运行 * 运行方式 1执行机运行,2插件运行
*/ */
@ApiModelProperty("运行方式 1执行机运行,2插件运行")
private String runType; private String runType;
/** /**
* 调度结果 1成功 2失败 * 调度结果 1成功 2失败
*/ */
@ApiModelProperty("调度结果 1成功 2失败")
private String triggerCode; private String triggerCode;
/** /**
* 触发时间 * 触发时间
*/ */
@ApiModelProperty("触发时间")
private Date triggerTime; private Date triggerTime;
/** /**
* 执行机的IP地址 * 执行机的IP地址
*/ */
@ApiModelProperty("执行机的IP地址")
private String jobGroupIp; private String jobGroupIp;
/** /**
* 映射的工作流id(当节点为虚节点,有意义) * 映射的工作流id(当节点为虚节点,有意义)
*/ */
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId; private Integer mapFlowId;
/** /**
* 运行命令 * 运行命令
*/ */
@ApiModelProperty("运行命令")
private String runCommand; private String runCommand;
/** /**
* 结束时间 * 结束时间
*/ */
@ApiModelProperty("结束时间")
private Date endTime; private Date endTime;
/** /**
* 开始时间 * 开始时间
*/ */
@ApiModelProperty("开始时间")
private Date startTime; private Date startTime;
/** /**
* 节点id * 节点id
*/ */
@ApiModelProperty("节点id")
private Integer nodeId; private Integer nodeId;
/** /**
* 节点任务类型 * 节点任务类型
*/ */
@ApiModelProperty("节点任务类型")
private String jobType; private String jobType;
/** /**
* 是否已完成告警(0未完成 1完成) * 是否已完成告警(0未完成 1完成)
*/ */
@ApiModelProperty("是否已完成告警(0未完成 1完成)")
private String alertEnd; private String alertEnd;
/** /**
* 运行标识 * 运行标识
*/ */
@ApiModelProperty("运行标识")
private String runId; private String runId;
/** /**
* 重跑的运行标识 * 重跑的运行标识
*/ */
@ApiModelProperty("重跑的运行标识")
private String reRunId; private String reRunId;
/** /**
* 日志文件的地址 * 日志文件的地址
...@@ -144,31 +171,40 @@ public class JobTaskRunLog implements Serializable { ...@@ -144,31 +171,40 @@ public class JobTaskRunLog implements Serializable {
/** /**
* 是否上级运行成功时运行(0 是 1 否) * 是否上级运行成功时运行(0 是 1 否)
*/ */
@ApiModelProperty("是否上级运行成功时运行(0 是 1 否)")
private String superSuccessRun; private String superSuccessRun;
/** /**
* 执行次数 * 执行次数
*/ */
@ApiModelProperty("执行次数")
private Integer runCount; private Integer runCount;
/** /**
* 日志文件的远程路径 * 日志文件的远程路径
*/ */
@ApiModelProperty("日志的远程路径")
private String logRemotelyPath; private String logRemotelyPath;
/** /**
* 依赖节点id集合 * 依赖节点id集合
*/ */
@ApiModelProperty("依赖节点id集合")
private String nodeDepend; private String nodeDepend;
/** /**
* 重跑和补批的操作人 * 重跑和补批的操作人
*/ */
@ApiModelProperty("重跑和补批的操作人")
private String operator; private String operator;
/** /**
* 跑批类型 1 正常跑批 2 重跑 3 补批 * 跑批类型 1 正常跑批 2 重跑 3 补批 4 插件端立即运行 5 类quartz任务执行
*/ */
@ApiModelProperty("跑批类型 1 正常跑批 2 重跑 3 补批 4 插件端立即运行 5 类quartz任务执行")
private Integer scheduleType; private Integer scheduleType;
@ApiModelProperty("脚本路径")
private String scriptUrls;
/** /**
* *
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment