添加gpio控制/进程健康管理

This commit is contained in:
gqc
2025-12-03 14:12:38 +08:00
parent 7a9d103943
commit 9b02bd9779
6 changed files with 302 additions and 27 deletions
+41
View File
@@ -292,3 +292,44 @@ func CleanupOldVideos(deviceUUID string) {
}
}
}
// CleanupOldRawVideos 清理推理程序生成的原始10s视频,保留最近60条
func CleanupOldRawVideos(deviceUUID string) {
rawDir := filepath.Join("/usr/data/camera", deviceUUID)
if _, err := os.Stat(rawDir); os.IsNotExist(err) {
return // 目录不存在,直接返回
}
files, err := os.ReadDir(rawDir)
if err != nil {
logger.Logger.Printf("Failed to read the original video directory %s: %v", rawDir, err)
return
}
var videoFiles []string
for _, file := range files {
if !file.IsDir() && filepath.Ext(file.Name()) == ".mp4" { // 假设是mp4,也可以加更多判断
videoFiles = append(videoFiles, filepath.Join(rawDir, file.Name()))
}
}
if len(videoFiles) <= 60 {
return // 不超过60条,不清理
}
// 按修改时间排序(旧 → 新)
sort.Slice(videoFiles, func(i, j int) bool {
fi, _ := os.Stat(videoFiles[i])
fj, _ := os.Stat(videoFiles[j])
return fi.ModTime().Before(fj.ModTime())
})
// 删除最早的(超过60条的部分)
for i := 0; i < len(videoFiles)-60; i++ {
if err := os.Remove(videoFiles[i]); err != nil {
logger.Logger.Printf("Failed to delete the old original video %s: %v", videoFiles[i], err)
} else {
logger.Logger.Printf("Clear the old original videos: %s", videoFiles[i])
}
}
}