Proper checkUp

This commit is contained in:
mr
2026-03-17 15:12:29 +01:00
parent 7fbc077cb1
commit e422efd267
7 changed files with 23 additions and 85 deletions

View File

@@ -5,16 +5,12 @@ import (
"encoding/json"
"fmt"
"oc-scheduler/conf"
"sync"
"time"
oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/config"
"cloud.o-forge.io/core/oc-lib/models/booking"
"cloud.o-forge.io/core/oc-lib/models/resources/purchase_resource"
"cloud.o-forge.io/core/oc-lib/models/utils"
"cloud.o-forge.io/core/oc-lib/tools"
"github.com/nats-io/nats.go"
)
// ---------------------------------------------------------------------------
@@ -43,42 +39,14 @@ func EmitNATS(peerID string, message tools.PropalgationMessage) {
func ListenNATS() {
tools.NewNATSCaller().ListenNats(map[tools.NATSMethod]func(tools.NATSResponse){
tools.PLANNER_EXECUTION: handlePlannerExecution,
tools.PLANNER_EXECUTION: handlePlannerExecution,
tools.PROPALGATION_EVENT: handlePropagationEvent,
tools.REMOVE_RESOURCE: handleRemoveResource,
tools.CREATE_RESOURCE: handleCreateResource,
tools.REMOVE_RESOURCE: handleRemoveResource,
tools.CREATE_RESOURCE: handleCreateResource,
tools.CONFIRM_EVENT: handleConfirm,
})
}
// ---------------------------------------------------------------------------
// Confirm channels
// ---------------------------------------------------------------------------
// ListenConfirm opens a direct NATS connection and subscribes to the hardcoded
// "confirm_booking" and "confirm_purchase" subjects. It reconnects automatically
// if the connection is lost.
func ListenConfirm() {
natsURL := config.GetConfig().NATSUrl
if natsURL == "" {
fmt.Println("ListenConfirm: NATS_SERVER not set, skipping confirm listeners")
return
}
for {
nc, err := nats.Connect(natsURL)
if err != nil {
fmt.Println("ListenConfirm: could not connect to NATS:", err)
time.Sleep(time.Minute)
continue
}
var wg sync.WaitGroup
wg.Add(2)
go listenConfirmChannel(nc, "confirm_booking", tools.BOOKING, &wg)
go listenConfirmChannel(nc, "confirm_purchase", tools.PURCHASE_RESOURCE, &wg)
wg.Wait()
nc.Close()
}
}
// ---------------------------------------------------------------------------
// Draft timeout
// ---------------------------------------------------------------------------