123456789101112131415161718192021 |
- package nodes
- import (
- "engine/xstream/api"
- )
- func Broadcast(outputs map[string]chan<- interface{}, val interface{}, ctx api.StreamContext) int {
- count := 0
- logger := ctx.GetLogger()
- for n, out := range outputs {
- select {
- case out <- val:
- count++
- default: //TODO channel full strategy?
- logger.Errorf("send output from %s to %s fail: channel full", ctx.GetOpId(), n)
- }
- }
- return count
- }
|