| | |
| | | // 获取系统时间 |
| | | Date finalTime = new Date(); |
| | | Date startTime = null; |
| | | // 获取系统备份周期(分钟) |
| | | int backupCycle = Integer.valueOf(Global.getSystemConfig("SYSTEM_BACK_CYCLE", "1440")); |
| | | // 获取系统最大备份时间 |
| | | StringBuilder sbSql = new StringBuilder(); |
| | | sbSql.append("SELECT TIMESTAMPDIFF(MINUTE, end_time, ?) AS diff_minutes,end_time \n"); |
| | | sbSql.append("SELECT end_time \n"); |
| | | sbSql.append("FROM product_sys_backup_log \n"); |
| | | sbSql.append("WHERE backup_status = 1 \n"); |
| | | sbSql.append("ORDER BY end_time DESC \n"); |
| | | sbSql.append("LIMIT 1 \n"); |
| | | FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {standardTimeFormat.format(finalTime)}, false); |
| | | if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("diff_minutes"))) { |
| | | Integer diffMinutes = fseMaxLogTime.getInteger("diff_minutes"); |
| | | if (diffMinutes < backupCycle) { |
| | | // 小于备份周期,不备份 |
| | | return ; |
| | | } |
| | | FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {}, false); |
| | | if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("end_time"))) { |
| | | startTime = fseMaxLogTime.getDate("end_time"); |
| | | } |
| | | // 初始备份日志数据 |
| | |
| | | // 保存日志 |
| | | baseDao.saveFieldSetEntity(fseBackLog); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 数据备份进程 |
| | |
| | | try (InputStream reader = getClass().getClassLoader().getResourceAsStream(CONFIG_FILE_PATH)) { |
| | | if (reader == null) { |
| | | log.writeInfo("【初始配置文件】初始系统配置文件失败:" + CONFIG_FILE_PATH + "配置文件不存在", BackupLogger.ERROR_TYPE); |
| | | return false; |
| | | } |
| | | // 读取备份配置文件 |
| | | config = new Properties(); |
| | |
| | | } else { |
| | | log.writeInfo("【备份数据库】数据库备份失败,退出码: " + exitCode, BackupLogger.ERROR_TYPE); |
| | | } |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.writeInfo("【备份数据库】数据库备份失败:" + e.getMessage(), BackupLogger.ERROR_TYPE); |
| | | backupFile.delete(); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /** |