fix:2.4.0
1、修复Job更新没有判断常驻任务字段resident 2、还原Job更新DateUtil改为Jdk Duration
This commit is contained in:
parent
a9a317b367
commit
a5c4980464
@ -5,6 +5,7 @@ import com.aizuda.easy.retry.server.web.model.request.JobQueryVO;
|
|||||||
import com.aizuda.easy.retry.server.web.model.request.JobRequestVO;
|
import com.aizuda.easy.retry.server.web.model.request.JobRequestVO;
|
||||||
import com.aizuda.easy.retry.server.web.model.request.JobUpdateJobStatusRequestVO;
|
import com.aizuda.easy.retry.server.web.model.request.JobUpdateJobStatusRequestVO;
|
||||||
import com.aizuda.easy.retry.server.web.model.response.JobResponseVO;
|
import com.aizuda.easy.retry.server.web.model.response.JobResponseVO;
|
||||||
|
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -24,6 +25,8 @@ public interface JobService {
|
|||||||
|
|
||||||
Boolean updateJobStatus(JobUpdateJobStatusRequestVO jobRequestVO);
|
Boolean updateJobStatus(JobUpdateJobStatusRequestVO jobRequestVO);
|
||||||
|
|
||||||
|
Job updateJobResident(JobRequestVO jobRequestVO);
|
||||||
|
|
||||||
Boolean deleteJobById(Long id);
|
Boolean deleteJobById(Long id);
|
||||||
|
|
||||||
List<String> getTimeByCron(String cron);
|
List<String> getTimeByCron(String cron);
|
||||||
|
@ -120,20 +120,36 @@ public class JobServiceImpl implements JobService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean saveJob(JobRequestVO jobRequestVO) {
|
public boolean saveJob(JobRequestVO jobRequestVO) {
|
||||||
Job job = JobConverter.INSTANCE.toJob(jobRequestVO);
|
|
||||||
WaitStrategy waitStrategy = WaitStrategyEnum.getWaitStrategy(jobRequestVO.getTriggerType());
|
WaitStrategy waitStrategy = WaitStrategyEnum.getWaitStrategy(jobRequestVO.getTriggerType());
|
||||||
WaitStrategyContext waitStrategyContext = new WaitStrategyContext();
|
WaitStrategyContext waitStrategyContext = new WaitStrategyContext();
|
||||||
waitStrategyContext.setTriggerType(jobRequestVO.getTriggerType());
|
waitStrategyContext.setTriggerType(jobRequestVO.getTriggerType());
|
||||||
waitStrategyContext.setTriggerInterval(jobRequestVO.getTriggerInterval());
|
waitStrategyContext.setTriggerInterval(jobRequestVO.getTriggerInterval());
|
||||||
waitStrategyContext.setNextTriggerAt(LocalDateTime.now());
|
waitStrategyContext.setNextTriggerAt(LocalDateTime.now());
|
||||||
job.setNextTriggerAt(waitStrategy.computeRetryTime(waitStrategyContext));
|
|
||||||
|
|
||||||
// 判断常驻任务
|
// 判断常驻任务
|
||||||
|
Job job = updateJobResident(jobRequestVO);
|
||||||
|
job.setNextTriggerAt(waitStrategy.computeRetryTime(waitStrategyContext));
|
||||||
|
return 1 == jobMapper.insert(job);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean updateJob(JobRequestVO jobRequestVO) {
|
||||||
|
Assert.notNull(jobRequestVO.getId(), () -> new EasyRetryServerException("id 不能为空"));
|
||||||
|
Assert.isTrue(1 == jobMapper.selectCount(new LambdaQueryWrapper<Job>().eq(Job::getId, jobRequestVO.getId())));
|
||||||
|
|
||||||
|
// 判断常驻任务
|
||||||
|
Job job = updateJobResident(jobRequestVO);
|
||||||
|
return 1 == jobMapper.updateById(job);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Job updateJobResident(JobRequestVO jobRequestVO) {
|
||||||
|
Job job = JobConverter.INSTANCE.toJob(jobRequestVO);
|
||||||
if (jobRequestVO.getTriggerType() == WaitStrategyEnum.FIXED.getTriggerType()) {
|
if (jobRequestVO.getTriggerType() == WaitStrategyEnum.FIXED.getTriggerType()) {
|
||||||
if (Integer.parseInt(jobRequestVO.getTriggerInterval()) < 10) {
|
if (Integer.parseInt(jobRequestVO.getTriggerInterval()) < 10) {
|
||||||
job.setResident(StatusEnum.YES.getStatus());
|
job.setResident(StatusEnum.YES.getStatus());
|
||||||
}
|
}
|
||||||
} else if(jobRequestVO.getTriggerType() == WaitStrategyEnum.CRON.getTriggerType()) {
|
} else if (jobRequestVO.getTriggerType() == WaitStrategyEnum.CRON.getTriggerType()) {
|
||||||
List<String> timeByCron = getTimeByCron(jobRequestVO.getTriggerInterval());
|
List<String> timeByCron = getTimeByCron(jobRequestVO.getTriggerInterval());
|
||||||
LocalDateTime first = LocalDateTime.parse(timeByCron.get(0), dateTimeFormatter);
|
LocalDateTime first = LocalDateTime.parse(timeByCron.get(0), dateTimeFormatter);
|
||||||
LocalDateTime second = LocalDateTime.parse(timeByCron.get(1), dateTimeFormatter);
|
LocalDateTime second = LocalDateTime.parse(timeByCron.get(1), dateTimeFormatter);
|
||||||
@ -145,16 +161,7 @@ public class JobServiceImpl implements JobService {
|
|||||||
} else {
|
} else {
|
||||||
throw new EasyRetryServerException("未知触发类型");
|
throw new EasyRetryServerException("未知触发类型");
|
||||||
}
|
}
|
||||||
|
return job;
|
||||||
return 1 == jobMapper.insert(job);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean updateJob(JobRequestVO jobRequestVO) {
|
|
||||||
Assert.notNull(jobRequestVO.getId(), () -> new EasyRetryServerException("id 不能为空"));
|
|
||||||
Assert.isTrue(1 == jobMapper.selectCount(new LambdaQueryWrapper<Job>().eq(Job::getId, jobRequestVO.getId())));
|
|
||||||
Job job = JobConverter.INSTANCE.toJob(jobRequestVO);
|
|
||||||
return 1 == jobMapper.updateById(job);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user