zj
2025-10-05 fc68aa452e2fd56441128d1d5a4b32f254c6191d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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;
    }
    
    
}