From 5fe39d6832eb0edd7dd0f57ae3bed161b4f31ccb Mon Sep 17 00:00:00 2001 From: Jonas Leder <jonas@jonasled.de> Date: Sun, 26 Jan 2025 14:56:53 +0100 Subject: [PATCH] fix storing queue data in json file --- queue/main.go | 5 +++-- queue/queue.go | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/queue/main.go b/queue/main.go index f59aa3b..c802f1d 100644 --- a/queue/main.go +++ b/queue/main.go @@ -21,15 +21,16 @@ func Init() { exitChan := make(chan os.Signal, 1) signal.Notify(exitChan, os.Interrupt, syscall.SIGTERM) + MainQueue = *queue go func() { <-exitChan fmt.Println("\nSaving main queue state before exiting...") - if err := queue.Save(); err != nil { + fmt.Println("\nCurrent queue size: ", MainQueue.GetCurrentSize()) + if err := MainQueue.Save(); err != nil { fmt.Println("Error saving main queue state:", err) } else { fmt.Println("Main queue state saved successfully.") } os.Exit(0) }() - MainQueue = *queue } diff --git a/queue/queue.go b/queue/queue.go index fbc0bf4..8f00ac0 100644 --- a/queue/queue.go +++ b/queue/queue.go @@ -5,6 +5,8 @@ import ( "fmt" "os" "time" + + "jonasled.dev/jonasled/ems-esp-logger/log" ) type QueueElement struct { @@ -33,6 +35,7 @@ func NewQueue(filePath string) (*Queue, error) { if err := json.Unmarshal(data, &q.Elements); err != nil { return nil, fmt.Errorf("error parsing state file: %w", err) } + log.Log.Info("Initialized queue, current size: ", q.GetCurrentSize()) } return q, nil } @@ -63,6 +66,10 @@ func (q *Queue) Dequeue() (string, error) { return "", fmt.Errorf("no elements are ready for dequeuing") } +func (q *Queue) GetCurrentSize() int { + return len(q.Elements) +} + func (q *Queue) Save() error { data, err := json.Marshal(q.Elements) if err != nil { -- GitLab