redo pubsub
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 34s
Build and Publish / BuildAndDeployArm64 (push) Successful in 3m49s

This commit is contained in:
matst80
2025-11-25 23:06:36 +01:00
parent f640cd7d2c
commit d5d2b3e711
6 changed files with 80 additions and 142 deletions

View File

@@ -43,10 +43,9 @@ var (
type PoolServer struct {
actor.GrainPool[*cart.CartGrain]
pod_name string
klarnaClient *KlarnaClient
inventoryService inventory.InventoryService
inventoryListener *inventory.InventoryChangeListener
pod_name string
klarnaClient *KlarnaClient
inventoryService inventory.InventoryService
}
func NewPoolServer(pool actor.GrainPool[*cart.CartGrain], pod_name string, klarnaClient *KlarnaClient, inventoryService inventory.InventoryService, inventoryRedisClient *redis.Client) *PoolServer {
@@ -56,16 +55,7 @@ func NewPoolServer(pool actor.GrainPool[*cart.CartGrain], pod_name string, klarn
klarnaClient: klarnaClient,
inventoryService: inventoryService,
}
listener := inventory.NewInventoryChangeListener(inventoryRedisClient, context.Background(), func(changes []inventory.InventoryChange) {
for _, change := range changes {
srv.GrainPool.GetPubSub().Publish(actor.Event{
Topic: fmt.Sprintf("inventory:%s", change.SKU),
Payload: change,
})
}
})
srv.inventoryListener = listener
go listener.Start()
return srv
}