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.JobUpdateJobStatusRequestVO;
|
||||
import com.aizuda.easy.retry.server.web.model.response.JobResponseVO;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -24,6 +25,8 @@ public interface JobService {
|
||||
|
||||
Boolean updateJobStatus(JobUpdateJobStatusRequestVO jobRequestVO);
|
||||
|
||||
Job updateJobResident(JobRequestVO jobRequestVO);
|
||||
|
||||
Boolean deleteJobById(Long id);
|
||||
|
||||
List<String> getTimeByCron(String cron);
|
||||
|
@ -120,20 +120,36 @@ public class JobServiceImpl implements JobService {
|
||||
|
||||
@Override
|
||||
public boolean saveJob(JobRequestVO jobRequestVO) {
|
||||
Job job = JobConverter.INSTANCE.toJob(jobRequestVO);
|
||||
WaitStrategy waitStrategy = WaitStrategyEnum.getWaitStrategy(jobRequestVO.getTriggerType());
|
||||
WaitStrategyContext waitStrategyContext = new WaitStrategyContext();
|
||||
waitStrategyContext.setTriggerType(jobRequestVO.getTriggerType());
|
||||
waitStrategyContext.setTriggerInterval(jobRequestVO.getTriggerInterval());
|
||||
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 (Integer.parseInt(jobRequestVO.getTriggerInterval()) < 10) {
|
||||
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());
|
||||
LocalDateTime first = LocalDateTime.parse(timeByCron.get(0), dateTimeFormatter);
|
||||
LocalDateTime second = LocalDateTime.parse(timeByCron.get(1), dateTimeFormatter);
|
||||
@ -145,16 +161,7 @@ public class JobServiceImpl implements JobService {
|
||||
} else {
|
||||
throw new EasyRetryServerException("未知触发类型");
|
||||
}
|
||||
|
||||
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);
|
||||
return job;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user