Example #1
0
// sender pops messages from a queue and sends them.
func (b *broker) sender(sender electron.Sender) {
	q := b.queues.Get(sender.Source())
	for {
		m, ok := <-q
		if !ok { // Queue closed
			return
		}
		if err := sender.SendForget(m); err == nil {
			util.Debugf("%s send: %s", sender, util.FormatMessage(m))
		} else {
			util.Debugf("%s error: %s", sender, err)
			q <- m // Put it back on the queue.
			return
		}
	}
}