new subsrcribe topic with wildcard *
This commit is contained in:
11
pubSub.go
11
pubSub.go
@@ -5,6 +5,7 @@ import (
|
||||
"sync"
|
||||
|
||||
"gitea.tecamino.com/paadi/pubSub/models"
|
||||
"gitea.tecamino.com/paadi/pubSub/utils"
|
||||
)
|
||||
|
||||
// Pubsub implements a simple topic-based publish/subscribe system
|
||||
@@ -43,9 +44,13 @@ func (ps *Pubsub) worker() {
|
||||
defer ps.wg.Done()
|
||||
for job := range ps.jobQueue {
|
||||
ps.mu.RLock()
|
||||
subs := make([]func(any), 0, len(ps.subs[job.Topic]))
|
||||
for _, cb := range ps.subs[job.Topic] {
|
||||
subs = append(subs, cb)
|
||||
var subs []func(any)
|
||||
for pattern, callbacks := range ps.subs {
|
||||
if utils.Matches(pattern, job.Topic) {
|
||||
for _, cb := range callbacks {
|
||||
subs = append(subs, cb)
|
||||
}
|
||||
}
|
||||
}
|
||||
ps.mu.RUnlock()
|
||||
|
||||
|
Reference in New Issue
Block a user