package db.job;
|
|
import java.util.Date;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import db.DBBackupLock;
|
import db.util.BackupUtil;
|
import kernel.util.DateUtils;
|
import project.log.SysLogService;
|
import project.syspara.SysparaService;
|
|
public class BackupJob {
|
|
private Logger logger = LoggerFactory.getLogger(BackupJob.class);
|
|
protected SysLogService sysLogService;
|
|
protected SysparaService sysparaService;
|
|
public void taskJob() {
|
try {
|
if(isBackup() && !DBBackupLock.getLock(DBBackupLock.ALL_DB_LOCK)) {
|
BackupUtil.backupPart(sysLogService,sysparaService);
|
}
|
logger.info("BackupJob taskJob end");
|
}catch (Throwable t) {
|
logger.error("BackupJob taskJob fail t:"+t);
|
}
|
|
}
|
|
public void newTaskJob() {
|
try {
|
// log.info("BackupJob taskJob start,time:"+DateUtils.dateToStr(new Date(), DateUtils.DF_yyyyMMddHHmmss)+",isBackup:"+isBackup()+",lock:"+DBBackupLock.getLock(DBBackupLock.ALL_DB_LOCK));
|
//未被锁
|
if(isBackup() && !DBBackupLock.getLock(DBBackupLock.ALL_DB_LOCK)) {
|
BackupUtil.backupPart(sysLogService,sysparaService);
|
}
|
logger.info("BackupJob taskJob end");
|
}catch (Throwable t) {
|
logger.error("BackupJob taskJob fail t:"+t);
|
}
|
|
}
|
|
/**
|
* 当前是否执行局部备份,true:开启,false:不开启
|
* @return
|
*/
|
private boolean isBackup() {
|
//例如, 01:55-02:35,04:00-05:08,13:55-14:45 表示多个时间段内不备份
|
try {
|
String not_part_backup_times = sysparaService.find("not_part_backup_times").getValue();
|
String[] times = not_part_backup_times.split(",");
|
Date now = new Date();
|
String nowDate = DateUtils.getDateStr(now);
|
for (int i = 0; i < times.length; i++) {
|
String[] timePart = times[i].split("-");
|
Date startTime = DateUtils.strToDate(nowDate+" "+timePart[0]);
|
Date endTime = DateUtils.strToDate(nowDate+" "+timePart[1]);
|
if(now.after(startTime)&&now.before(endTime)) {
|
return false;
|
}
|
}
|
}catch (Exception e) {
|
// TODO: handle exception
|
logger.error("BackupJob isBackup fail,e:",e);
|
}
|
return true;
|
}
|
public void setSysLogService(SysLogService sysLogService) {
|
this.sysLogService = sysLogService;
|
}
|
|
public void setSysparaService(SysparaService sysparaService) {
|
this.sysparaService = sysparaService;
|
}
|
|
|
}
|