Commit c8c0e154 by huangfusuper

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

parent 764fe3ea
......@@ -30,9 +30,6 @@ public class JavaTaskAndLogServiceServiceImpl implements JavaTaskAndLogService {
JavaTask updateJavaTask = new JavaTask();
try {
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());
} catch (ParseException e) {
javaTask.setTriggerTime(999999999999999999L);
......
......@@ -34,14 +34,14 @@ public class JavaTaskThreadRunHelper extends BaseThreadRunHelper {
long nowTime = System.currentTimeMillis();
List<JavaTask> javaTasks = javaTaskService.findAllByTriggerTimeLessThanEqual(nowTime + JAVA_TASK_WAIT_TIME);
if(CollectionUtil.isNotEmpty(javaTasks)){
javaTasks.forEach(javaTask -> {
for (JavaTask javaTask : javaTasks) {
//查看该任务的剩余执行次数
Integer repeatCount = javaTask.getRepeatCount();
if(repeatCount > 0){
javaTask.setRepeatCount(javaTask.getRepeatCount()-1);
}
javaTaskAndLogService.updateJavaTaskAndSaveLog(javaTask);
});
}
}
return JAVA_TASK_WAIT_TIME;
}
......
......@@ -12,4 +12,15 @@
<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>
\ No newline at end of file
package com.byit.dto.plugin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
......@@ -11,6 +13,7 @@ import java.util.Date;
/**
* @author huangfu
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
......@@ -19,122 +22,146 @@ public class JobTaskRunLog implements Serializable {
/**
* 日志ID
*/
@ApiModelProperty("日志ID")
private Integer logId;
/**
* 当前节点的失败剩余重试次数 初始阶段为初始的重试次数
*/
@ApiModelProperty("当前节点的失败剩余重试次数 初始阶段为初始的重试次数")
private Integer failedRemainingCount;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 任务流主键
*/
@ApiModelProperty("任务流主键")
private Integer flowId;
/**
* 所属任务流的名称
*/
@ApiModelProperty("所属任务流的名称")
private String flowName;
/**
* 执行机主键
*/
@ApiModelProperty("执行机主键")
private Integer jobGroupId;
/**
* 插件方节点key
*/
@ApiModelProperty("插件方节点key")
private String handlerName;
/**
* 节点名称
*/
@ApiModelProperty("节点名称")
private String nodeName;
/**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual;
/**
* 运行结果 0运行中 1 成功 2 失败 3 补批成功 4 补批失败 5.kill 6.上级节点执行失败
*/
@ApiModelProperty("运行结果 0运行中 1 成功 2 失败 3 补批成功 4 补批失败 5.kill 6.上级节点执行失败")
private String runCode;
/**
* 运行参数
*/
@ApiModelProperty("运行参数")
private String runParams;
/**
* 运行方式 1执行机运行,2插件运行
*/
@ApiModelProperty("运行方式 1执行机运行,2插件运行")
private String runType;
/**
* 调度结果 1成功 2失败
*/
@ApiModelProperty("调度结果 1成功 2失败")
private String triggerCode;
/**
* 触发时间
*/
@ApiModelProperty("触发时间")
private Date triggerTime;
/**
* 执行机的IP地址
*/
@ApiModelProperty("执行机的IP地址")
private String jobGroupIp;
/**
* 映射的工作流id(当节点为虚节点,有意义)
*/
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId;
/**
* 运行命令
*/
@ApiModelProperty("运行命令")
private String runCommand;
/**
* 结束时间
*/
@ApiModelProperty("结束时间")
private Date endTime;
/**
* 开始时间
*/
@ApiModelProperty("开始时间")
private Date startTime;
/**
* 节点id
*/
@ApiModelProperty("节点id")
private Integer nodeId;
/**
* 节点任务类型
*/
@ApiModelProperty("节点任务类型")
private String jobType;
/**
* 是否已完成告警(0未完成 1完成)
*/
@ApiModelProperty("是否已完成告警(0未完成 1完成)")
private String alertEnd;
/**
* 运行标识
*/
@ApiModelProperty("运行标识")
private String runId;
/**
* 重跑的运行标识
*/
@ApiModelProperty("重跑的运行标识")
private String reRunId;
/**
* 日志文件的地址
......@@ -144,31 +171,40 @@ public class JobTaskRunLog implements Serializable {
/**
* 是否上级运行成功时运行(0 是 1 否)
*/
@ApiModelProperty("是否上级运行成功时运行(0 是 1 否)")
private String superSuccessRun;
/**
* 执行次数
*/
@ApiModelProperty("执行次数")
private Integer runCount;
/**
* 日志文件的远程路径
*/
@ApiModelProperty("日志的远程路径")
private String logRemotelyPath;
/**
* 依赖节点id集合
*/
@ApiModelProperty("依赖节点id集合")
private String nodeDepend;
/**
* 重跑和补批的操作人
*/
@ApiModelProperty("重跑和补批的操作人")
private String operator;
/**
* 跑批类型 1 正常跑批 2 重跑 3 补批
* 跑批类型 1 正常跑批 2 重跑 3 补批 4 插件端立即运行 5 类quartz任务执行
*/
@ApiModelProperty("跑批类型 1 正常跑批 2 重跑 3 补批 4 插件端立即运行 5 类quartz任务执行")
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