mirror of
https://github.com/oarkflow/mq.git
synced 2025-10-05 16:06:55 +08:00
33 lines
596 B
Go
33 lines
596 B
Go
package dag
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/oarkflow/mq"
|
|
)
|
|
|
|
type Operations struct {
|
|
mu *sync.RWMutex
|
|
Handlers map[string]func(string) mq.Processor
|
|
}
|
|
|
|
var ops = &Operations{mu: &sync.RWMutex{}, Handlers: make(map[string]func(string) mq.Processor)}
|
|
|
|
func AddHandler(key string, handler func(string) mq.Processor) {
|
|
ops.mu.Lock()
|
|
ops.Handlers[key] = handler
|
|
ops.mu.Unlock()
|
|
}
|
|
|
|
func GetHandler(key string) func(string) mq.Processor {
|
|
return ops.Handlers[key]
|
|
}
|
|
|
|
func AvailableHandlers() []string {
|
|
var op []string
|
|
for opt := range ops.Handlers {
|
|
op = append(op, opt)
|
|
}
|
|
return op
|
|
}
|