Commit 9331f0cd by huangfusuper

失败重试线程重构

parent 01f89b06
package com.byit.thread.helper;
import cn.hutool.core.collection.CollectionUtil;
import com.byit.model.JobTaskRunLog;
import com.byit.service.JobTaskRunLogAndJobTaskService;
import com.byit.service.JobTaskRunLogService;
import com.byit.thread.BaseThreadRunHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.sql.DataSource;
import java.util.List;
/**
* 扫描失败节点
* 作用: 扫描日志节点的失败节点,执行失败重试
* @author huangfu
*/
@Component
@Slf4j
public class FailedRetryThreadRunHelper extends BaseThreadRunHelper {
private static final String LOCK_NAME = "log_error_lock";
private final DataSource dataSource;
private final JobTaskRunLogService jobTaskRunLogService;
private final JobTaskRunLogAndJobTaskService jobTaskRunLogAndJobTaskService;
public FailedRetryThreadRunHelper(DataSource dataSource, JobTaskRunLogService jobTaskRunLogService, JobTaskRunLogAndJobTaskService jobTaskRunLogAndJobTaskService) {
this.dataSource = dataSource;
this.jobTaskRunLogService = jobTaskRunLogService;
this.jobTaskRunLogAndJobTaskService = jobTaskRunLogAndJobTaskService;
}
@Override
public Long start() {
//查询又重试次数的失败节点
List<JobTaskRunLog> errorNodes = jobTaskRunLogService.findErrorNode();
if(CollectionUtil.isNotEmpty(errorNodes)){
errorNodes.forEach(errorNode ->{
log.debug("-----------------【操作失败节点{}】-----------------",errorNode);
jobTaskRunLogAndJobTaskService.updateLogAndSaveJobTask(errorNode);
});
}else{
return UNIVERSAL_WAIT_TIME;
}
return NOT_WAIT_TIME;
}
@Override
public DataSource getDataSource() {
return dataSource;
}
@Override
public String getLockName() {
return LOCK_NAME;
}
}
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