add queue package

This commit is contained in:
kevin
2020-08-13 17:00:53 +08:00
parent 5f084fb7d2
commit 6fdee77fa9
11 changed files with 610 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
package queue
import "github.com/tal-tech/go-zero/core/errorx"
type MultiQueuePusher struct {
name string
pushers []Pusher
}
func NewMultiQueuePusher(pushers []Pusher) Pusher {
return &MultiQueuePusher{
name: generateName(pushers),
pushers: pushers,
}
}
func (pusher *MultiQueuePusher) Name() string {
return pusher.name
}
func (pusher *MultiQueuePusher) Push(message string) error {
var batchError errorx.BatchError
for _, each := range pusher.pushers {
if err := each.Push(message); err != nil {
batchError.Add(err)
}
}
return batchError.Err()
}