LingxinMeng 1 jaar geleden
bovenliggende
commit
0aba172bf5

+ 4 - 4
aarch64/kinglong/common/config/c_cloud.go

@@ -108,8 +108,8 @@ func InitCloudConfig() {
 		os.Exit(-1)
 	}
 	c_log.GlobalLogger.Info("初始化OSS配置文件 - 成功。")
-	_ = util.CreateDir(CloudConfig.BagDataDir)
-	_ = util.CreateDir(CloudConfig.BagCopyDir)
+	util.CreateDir(CloudConfig.BagDataDir)
+	util.CreateDir(CloudConfig.BagCopyDir)
 	timeToLabelJson, _ := util.MapToJsonString(map[string]interface{}{"time": "label"})
 	_ = util.WriteFile(timeToLabelJson, CloudConfig.TimeToLabelJsonPath)
 }
@@ -152,8 +152,8 @@ func refreshCloudConfig() {
 		c_log.GlobalLogger.Error("配置文件格式错误:", newCloudConfig)
 		return
 	}
-	_ = util.CreateDir(CloudConfig.BagDataDir)
-	_ = util.CreateDir(CloudConfig.BagCopyDir)
+	util.CreateDir(CloudConfig.BagDataDir)
+	util.CreateDir(CloudConfig.BagCopyDir)
 }
 
 // RefreshCloudConfig 轮询oss上的配置文件更新到本地

+ 3 - 0
aarch64/kinglong/master/main.go

@@ -6,6 +6,7 @@ import (
 	masterConfig "cicv-data-closedloop/aarch64/kinglong/master/package/config"
 	masterService "cicv-data-closedloop/aarch64/kinglong/master/package/service"
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/util"
 )
 
 func init() {
@@ -20,6 +21,8 @@ func init() {
 
 	// 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
 	commonConfig.InitCloudConfig()
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagDataDir)
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagCopyDir)
 
 	go commonConfig.RefreshCloudConfig()
 

+ 3 - 0
aarch64/kinglong/slave/main.go

@@ -6,6 +6,7 @@ import (
 	slaveConfig "cicv-data-closedloop/aarch64/kinglong/slave/package/config"
 	slaveService "cicv-data-closedloop/aarch64/kinglong/slave/package/service"
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/util"
 )
 
 // init 初始化函数
@@ -21,6 +22,8 @@ func init() {
 
 	// 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
 	commonConfig.InitCloudConfig()
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagDataDir)
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagCopyDir)
 
 	go commonConfig.RefreshCloudConfig()
 

+ 3 - 0
aarch64/pji/master/main.go

@@ -6,6 +6,7 @@ import (
 	masterConfig "cicv-data-closedloop/aarch64/pji/master/package/config"
 	masterService "cicv-data-closedloop/aarch64/pji/master/package/service"
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/util"
 	"runtime"
 	"time"
 )
@@ -20,6 +21,8 @@ func init() {
 	commonConfig.InitOssConfig()
 	// 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
 	commonConfig.InitCloudConfig()
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagDataDir)
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagCopyDir)
 	go commonConfig.RefreshCloudConfig()
 	// 初始化数据闭环平台的配置(第3处配置,在数据闭环平台接口)
 	commonConfig.InitPlatformConfig()

+ 2 - 2
aarch64/pjisuv/common/config/c_cloud.go

@@ -108,8 +108,8 @@ func InitCloudConfig() {
 		os.Exit(-1)
 	}
 	c_log.GlobalLogger.Info("初始化OSS配置文件 - 成功。")
-	_ = util.CreateDir(CloudConfig.BagDataDir)
-	_ = util.CreateDir(CloudConfig.BagCopyDir)
+	util.CreateDir(CloudConfig.BagDataDir)
+	util.CreateDir(CloudConfig.BagCopyDir)
 	timeToLabelJson, _ := util.MapToJsonString(map[string]interface{}{"time": "label"})
 	_ = util.WriteFile(timeToLabelJson, CloudConfig.TimeToLabelJsonPath)
 }

+ 8 - 7
aarch64/pjisuv/master/main.go

@@ -6,32 +6,33 @@ import (
 	masterConfig "cicv-data-closedloop/aarch64/pjisuv/master/package/config"
 	masterService "cicv-data-closedloop/aarch64/pjisuv/master/package/service"
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/util"
 )
 
 func init() {
 	// 初始化日志配置
-	//runtime.GOMAXPROCS(1)
+	// runtime.GOMAXPROCS(1)
+	// 记录资源日志一秒采集一次
+	//go func() {
+	//
+	//}()
 	c_log.InitLog("/mnt/media/sda1/cicv-data-closedloop/log/", "pjisuv-master")
 	// 初始化本地配置文件(第1处配置,在本地文件)
 	commonConfig.InitLocalConfig()
-
 	// 初始化Oss连接信息
 	commonConfig.InitOssConfig()
-
 	// 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
 	commonConfig.InitCloudConfig()
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagDataDir)
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagCopyDir)
 
 	go commonConfig.RefreshCloudConfig()
-
 	// 初始化数据闭环平台的配置(第3处配置,在数据闭环平台接口)
 	commonConfig.InitPlatformConfig()
-
 	// 初始化ros节点
 	commonConfig.InitRosConfig()
-
 	// 维护data目录缓存的包数量
 	go commonService.BagCacheClean()
-
 	// 磁盘占用过高时根据缓存策略处理copy目录
 	go commonService.DiskClean()
 	// 初始化加载触发器插件文件

+ 3 - 0
aarch64/pjisuv/slave/main.go

@@ -6,6 +6,7 @@ import (
 	slaveConfig "cicv-data-closedloop/aarch64/pjisuv/slave/package/config"
 	slaveService "cicv-data-closedloop/aarch64/pjisuv/slave/package/service"
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/util"
 )
 
 // init 初始化函数
@@ -20,6 +21,8 @@ func init() {
 
 	// 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
 	commonConfig.InitCloudConfig()
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagDataDir)
+	_ = util.RemoveSubFiles(commonConfig.CloudConfig.BagCopyDir)
 
 	go commonConfig.RefreshCloudConfig()
 

+ 1 - 1
common/domain/d_service.go

@@ -10,7 +10,7 @@ import (
 
 func MoveFromDataToCopy(faultTime string, bagDataDir string, sourceBag string, bagCopyDir string) {
 	dir := GetCopyDir(bagCopyDir, faultTime)
-	_ = util.CreateDir(dir)
+	util.CreateDir(dir)
 	targetBag := strings.Replace(sourceBag, bagDataDir, dir, 1)
 	var copyCommand []string
 	copyCommand = append(copyCommand, sourceBag)

+ 35 - 8
common/util/u_io.go

@@ -8,16 +8,11 @@ import (
 	"strings"
 )
 
-func CreateDir(directory string) error {
-	// 检查目录是否存在
+// CreateDir 创建目录
+func CreateDir(directory string) {
 	if _, err := os.Stat(directory); os.IsNotExist(err) {
-		// 如果目录不存在,创建父目录
-		err := os.MkdirAll(directory, os.ModePerm)
-		if err != nil {
-			return err
-		}
+		_ = os.MkdirAll(directory, os.ModePerm)
 	}
-	return nil
 }
 
 // CreateParentDir 存在不创建,不存在则创建父目录
@@ -64,6 +59,38 @@ func RemoveDir(dirPath string) error {
 	return nil
 }
 
+// RemoveSubFiles 递归删除目录及其下的所有文件和子目录
+func RemoveSubFiles(dirPath string) error {
+	// 打开目录
+	dir, err := os.Open(dirPath)
+	if err != nil {
+		return err
+	}
+	defer dir.Close()
+	// 读取目录下的文件和子目录
+	fileInfos, err := dir.Readdir(-1)
+	if err != nil {
+		return err
+	}
+	// 遍历文件和子目录
+	for _, fileInfo := range fileInfos {
+		path := filepath.Join(dirPath, fileInfo.Name())
+
+		if fileInfo.IsDir() {
+			// 如果是子目录,递归调用removeDir删除子目录及其下的文件和子目录
+			if err = RemoveDir(path); err != nil {
+				return err
+			}
+		} else {
+			// 如果是文件,直接删除文件
+			if err = os.Remove(path); err != nil {
+				return err
+			}
+		}
+	}
+	return nil
+}
+
 func WriteFile(sourceContent string, targetFilePath string) error {
 	if err := CreateFile(targetFilePath); err != nil {
 		return err