diff --git a/queue/main.go b/queue/main.go index f59aa3bc794e614359bb1c1f93a476293637fc62..c802f1d84b737d12e97c6709bb1676310afe012a 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 fbc0bf4c4976fe23d5273a75b09d3ee245db9df5..8f00ac087da1abc1b1bd64a17e0e4e9e26a15a46 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 {