Adjust file write functions to reduce memory load
This commit is contained in:
parent
94e4cd964d
commit
51f5c4fdcd
@ -1,12 +1,10 @@
|
|||||||
package cif
|
package cif
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"errors"
|
"errors"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.fjla.uk/owlboard/go-types/pkg/upstreamApi"
|
|
||||||
"git.fjla.uk/owlboard/timetable-mgr/helpers"
|
"git.fjla.uk/owlboard/timetable-mgr/helpers"
|
||||||
"git.fjla.uk/owlboard/timetable-mgr/log"
|
"git.fjla.uk/owlboard/timetable-mgr/log"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
@ -108,34 +106,6 @@ func parseDaysRun(daysBinary *string) []string {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func debugWriteFile(header *upstreamApi.JsonTimetableV1, schedule *[]upstreamApi.JsonScheduleV1) {
|
|
||||||
if helpers.Runtime == "debug" {
|
|
||||||
log.Msg.Debug("Writing CIF Header and Schedule elements to file")
|
|
||||||
filepath := "./cif_debug_data/"
|
|
||||||
filename := time.Now().In(londonTimezone).Format("2006-01-02_15:04:05_ParsedCIF")
|
|
||||||
|
|
||||||
data, err := json.MarshalIndent(map[string]interface{}{
|
|
||||||
"header": header,
|
|
||||||
"schedule": schedule,
|
|
||||||
}, "", " ")
|
|
||||||
if err != nil {
|
|
||||||
log.Msg.Error("Error marshalling data", zap.Error(err))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = os.MkdirAll(filepath, 0777)
|
|
||||||
if err != nil {
|
|
||||||
log.Msg.Error("Error creating directory", zap.Error(err))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
writeErr := os.WriteFile(filepath+filename+".json", data, 0777)
|
|
||||||
if writeErr != nil {
|
|
||||||
log.Msg.Error("Error writing debug file to disk", zap.Error(writeErr))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func debugWriteDownload(input *[]byte) {
|
func debugWriteDownload(input *[]byte) {
|
||||||
if helpers.Runtime == "debug" {
|
if helpers.Runtime == "debug" {
|
||||||
log.Msg.Debug("Writing CIF Download to file")
|
log.Msg.Debug("Writing CIF Download to file")
|
||||||
@ -148,9 +118,25 @@ func debugWriteDownload(input *[]byte) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = os.WriteFile(filepath+filename+".jsonl", *input, 0777)
|
file, err := os.Create(filepath + filename + ".jsonl")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Msg.Error("Error writing debug file to disk", zap.Error(err))
|
log.Msg.Error("Error creating file", zap.Error(err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
// Write data to file in smaller chunks
|
||||||
|
bufferSize := 4096 // Adjust the buffer size as needed
|
||||||
|
for i := 0; i < len(*input); i += bufferSize {
|
||||||
|
end := i + bufferSize
|
||||||
|
if end > len(*input) {
|
||||||
|
end = len(*input)
|
||||||
|
}
|
||||||
|
_, err := file.Write((*input)[i:end])
|
||||||
|
if err != nil {
|
||||||
|
log.Msg.Error("Error writing data to file", zap.Error(err))
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user