diff --git a/src/modules/crontask/processor/monitor_sys_resource/monitor_sys_resource.go b/src/modules/crontask/processor/monitor_sys_resource/monitor_sys_resource.go index 6395d3b9..9b1187bf 100644 --- a/src/modules/crontask/processor/monitor_sys_resource/monitor_sys_resource.go +++ b/src/modules/crontask/processor/monitor_sys_resource/monitor_sys_resource.go @@ -1,4 +1,4 @@ -package monitorsysresource +package monitor_sys_resource import ( "encoding/json" diff --git a/src/modules/crontask/processor/ne_config_backup/ne_config_backup.go b/src/modules/crontask/processor/ne_config_backup/ne_config_backup.go new file mode 100644 index 00000000..8263e19d --- /dev/null +++ b/src/modules/crontask/processor/ne_config_backup/ne_config_backup.go @@ -0,0 +1,61 @@ +package ne_config_backup + +import ( + "fmt" + "path/filepath" + + "be.ems/src/framework/cron" + "be.ems/src/framework/logger" + neModel "be.ems/src/modules/network_element/model" + neService "be.ems/src/modules/network_element/service" +) + +var NewProcessor = &NeConfigBackupProcessor{ + neConfigBackupService: neService.NewNeConfigBackupImpl, + neInfoService: neService.NewNeInfoImpl, + count: 0, +} + +// NeConfigBackupProcessor 网元配置文件定期备份 +type NeConfigBackupProcessor struct { + // 网元配置文件备份记录服务 + neConfigBackupService neService.INeConfigBackup + // 网元信息服务 + neInfoService neService.INeInfo + // 执行次数 + count int +} + +func (s *NeConfigBackupProcessor) Execute(data any) (any, error) { + s.count++ // 执行次数加一 + options := data.(cron.JobData) + sysJob := options.SysJob + logger.Infof("重复 %v 任务ID %s", options.Repeat, sysJob.JobID) + // 返回结果,用于记录执行结果 + result := map[string]any{ + "count": s.count, + } + + neList := s.neInfoService.SelectList(neModel.NeInfo{}, false, false) + for _, neInfo := range neList { + neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId) + // 将网元文件备份到本地 + zipFilePath, err := s.neConfigBackupService.NeConfigNeToLocal(neInfo) + if err != nil { + result[neTypeAndId] = err.Error() + continue + } + // 新增备份记录 + item := neModel.NeConfigBackup{ + NeType: neInfo.NeType, + NeId: neInfo.NeId, + Name: filepath.Base(zipFilePath), + Path: zipFilePath, + CreateBy: "system", + } + s.neConfigBackupService.Insert(item) + result[neTypeAndId] = "ok" + } + + return result, nil +} diff --git a/src/modules/crontask/processor/processor.go b/src/modules/crontask/processor/processor.go index f190b896..81ce9de1 100644 --- a/src/modules/crontask/processor/processor.go +++ b/src/modules/crontask/processor/processor.go @@ -7,13 +7,16 @@ import ( "be.ems/src/modules/crontask/processor/deleteExpiredRecord" "be.ems/src/modules/crontask/processor/genNeStateAlarm" "be.ems/src/modules/crontask/processor/getStateFromNE" - monitorsysresource "be.ems/src/modules/crontask/processor/monitor_sys_resource" + processorMonitorSysResource "be.ems/src/modules/crontask/processor/monitor_sys_resource" + processorNeConfigBackup "be.ems/src/modules/crontask/processor/ne_config_backup" ) // InitCronQueue 初始定时任务队列 func InitCronQueue() { // 监控-系统资源 - cron.CreateQueue("monitor_sys_resource", monitorsysresource.NewProcessor) + cron.CreateQueue("monitor_sys_resource", processorMonitorSysResource.NewProcessor) + // 网元-网元配置文件定期备份 + cron.CreateQueue("ne_config_backup", processorNeConfigBackup.NewProcessor) // delete expired NE backup file cron.CreateQueue("delExpiredNeBackup", delExpiredNeBackup.NewProcessor) cron.CreateQueue("deleteExpiredRecord", deleteExpiredRecord.NewProcessor)