package com.hqyg.disjob.monitor;
import java.util.concurrent.TimeUnit;
import com.hqyg.disjob.common.util.LoggerUtil;
import com.hqyg.disjob.monitor.db.service.DBJobBasicInfoService;
import com.hqyg.disjob.monitor.util.MonitorSpringWorkFactory;
import com.hqyg.disjob.quence.Action;
import com.hqyg.disjob.quence.TaskExecuteException;
import com.hqyg.disjob.monitor.db.domain.DBJobBasicInfo;
public class DBJobBasicInfoOpAction extends Action{
public static final int BASICINFO_CREATE_OP = 1 ;
public static final int BASICINFO_UPDATE_OP = 2 ;
private DBJobBasicInfoService jobService ;
private DBJobBasicInfo info ;
private int opType ;
public DBJobBasicInfoOpAction(DBJobBasicInfo info,int opType) {
this.jobService = MonitorSpringWorkFactory.getDBJobBasicInfoService() ;
this.info = info ;
this.opType = opType ;
}
@Override
public void execute() throws TaskExecuteException {
if(jobService== null){
return ;
}
switch (opType) {
case DBJobBasicInfoOpAction.BASICINFO_CREATE_OP:
this.jobService.create(info);
break;
case DBJobBasicInfoOpAction.BASICINFO_UPDATE_OP:
boolean isFlag = this.jobService.update(info);
int failCount = 3 ;
while(!isFlag&&failCount-->0){
isFlag = this.jobService.update(info);
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(!isFlag){
LoggerUtil.warn(info.getUuid()+"; update after 3 count is fail :"+info.toString());
}
break;
default:
LoggerUtil.debug("DBJobBasicInfoOpAction 不支持的操作类型:"+opType);
break;
}
}
}