Update STOMP disconnection
All checks were successful
Go Test / test (push) Successful in 2m4s

This commit is contained in:
Fred Boniface 2024-04-15 20:36:33 +01:00
parent ba8e4e4c72
commit 790d293bc4
4 changed files with 18 additions and 9 deletions

View File

@ -74,10 +74,9 @@ func handleSignals(cfg *helpers.Configuration, stop chan<- struct{}) {
func cleanup(cfg *helpers.Configuration, stop chan<- struct{}) { func cleanup(cfg *helpers.Configuration, stop chan<- struct{}) {
log.Debug("Cleaning up open connections") log.Debug("Cleaning up open connections")
if cfg.VstpOn { if cfg.VstpOn {
if messaging.Client != nil { log.Info("Closing STOMP Client")
log.Info("Closing STOMP Client") messaging.Disconnect(messaging.Client)
messaging.Disconnect(messaging.Client)
}
} }
if dbAccess.MongoClient != nil { if dbAccess.MongoClient != nil {
log.Info("Closing MongoDB Client") log.Info("Closing MongoDB Client")

View File

@ -22,7 +22,7 @@ func dial(user, pass string) *stomp.Conn {
) )
if err != nil { if err != nil {
log.Fatal("Unable to connect to STOMP Client: " + err.Error()) log.Fatal("Unable to connect to STOMP Client: " + err.Error())
conn.MustDisconnect() conn.Disconnect()
} }
log.Info("Initialised STOMP Client") log.Info("Initialised STOMP Client")
@ -42,6 +42,11 @@ func Disconnect(conn *stomp.Conn) {
return return
} }
log.Error("STOMP Disconnect failed, next connection attempt may fail") log.Error("STOMP Disconnect failed, next connection attempt may fail")
} err := Client.Disconnect()
if err != nil {
Client.MustDisconnect()
log.Warn("STOMP Disconnect failed, forced disconnection")
}
log.Info("STOMP Client disconnected")
// Register against the MQ Server and log each message for testing purposes }

View File

@ -39,7 +39,6 @@ func processCifData(s *upstreamApi.JsonScheduleV1) error {
} }
return nil return nil
} else { } else {
err := fmt.Errorf("unknown transaction type: %s", s.TransactionType) return fmt.Errorf("unknown transaction type: %s", s.TransactionType)
return err
} }
} }

View File

@ -1,6 +1,8 @@
package vstp package vstp
import ( import (
"time"
"git.fjla.uk/owlboard/timetable-mgr/log" "git.fjla.uk/owlboard/timetable-mgr/log"
"github.com/go-stomp/stomp/v3" "github.com/go-stomp/stomp/v3"
"go.uber.org/zap" "go.uber.org/zap"
@ -9,6 +11,7 @@ import (
var count uint64 = 0 var count uint64 = 0
func handle(msg *stomp.Message) { func handle(msg *stomp.Message) {
start := time.Now()
count++ count++
log.Info("Message received", zap.Uint64("total since startup", count)) log.Info("Message received", zap.Uint64("total since startup", count))
schedule, err := unmarshalData(string(msg.Body)) schedule, err := unmarshalData(string(msg.Body))
@ -19,4 +22,7 @@ func handle(msg *stomp.Message) {
if err != nil { if err != nil {
log.Error("Error processing VSTP Schedule", zap.Error(err)) log.Error("Error processing VSTP Schedule", zap.Error(err))
} }
end := time.Now()
duration := start.Sub(end)
log.Info("Message processed", zap.Duration("processing-time", duration))
} }