package main
import (
"fmt"
"log"
"github.com/sagoo-cloud/nexframe/os/file"
)
func main() {
// 初始化文件系统
file.InitFileSystem()
// 设置缓存过期时间
file.SetCacheExpiration(30 * time.Minute)
// 处理单个大日志文件
logFile := "/var/log/app.log"
processor := file.ChunkProcessor{
ChunkSize: 1024 * 1024, // 1MB 块大小
Handler: func(chunk []byte) error {
// 这里可以添加日志处理逻辑,如解析、统计等
fmt.Printf("Processed %d bytes of log data\n", len(chunk))
return nil
},
}
err := file.ProcessLargeFile(logFile, processor)
if err != nil {
log.Fatalf("Failed to process log file: %v", err)
}
// 并行处理多个配置文件
configFiles := []string{
"/etc/app/config1.json",
"/etc/app/config2.json",
"/etc/app/config3.json",
}
err = file.ProcessFilesInParallel(configFiles, func(filePath string) error {
f := file.NewFile(filePath)
content, err := f.ReadAll()
if err != nil {
return fmt.Errorf("failed to read config file %s: %v", filePath, err)
}
fmt.Printf("Config file %s content: %s\n", filePath, string(content))
return nil
}, 3) // 最大并发数为 3
if err != nil {
log.Fatalf("Failed to process config files: %v", err)
}
// 写入汇总报告
report := file.NewFile("/var/log/summary.txt")
err = report.WriteAppend([]byte("Log processing completed successfully.\n"))
if err != nil {
log.Fatalf("Failed to write summary: %v", err)
}
fmt.Println("Application completed successfully.")
}