Manager paradigm change to an event-loop concurrency style, begun implementing batching in binance futures_websocket.go

This commit is contained in:
2025-09-07 12:01:36 +00:00
parent 98c030c562
commit 70f3714d2f
10 changed files with 1210 additions and 575 deletions

View File

@@ -13,9 +13,9 @@ type Router struct {
mu sync.RWMutex
}
func NewRouter() *Router {
func NewRouter(buffer int) *Router {
return &Router{
incoming: make(chan domain.Message, 512), // Buffered channel for incoming messages
incoming: make(chan domain.Message, buffer), // Buffered channel for incoming messages
routes: make(map[domain.Identifier][]chan<- domain.Message),
}
}
@@ -33,7 +33,7 @@ func (r *Router) Run() {
select {
case ch <- msg:
default:
fmt.Println("Dropped message, buffer full!!!") // TODO: Handle full buffer case more gracefully
fmt.Println("Router could not push message to a full buffer...") // TODO: Handle full buffer case more gracefully
}
}
r.mu.RUnlock()