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