Select Git revision
producer.go
producer.go 768 B
package mem
import (
"gitlab.com/uafrica/go-utils/errors"
"gitlab.com/uafrica/go-utils/service"
)
//can only produce locally if also consuming local
func NewProducer(consumer *consumer) service.Producer {
if consumer == nil {
panic(errors.Errorf("cannot product locally without consumer"))
}
return &producer{
consumer: consumer,
}
}
type producer struct {
consumer *consumer
}
func (producer *producer) Send(event service.Event) (string, error) {
q, err := producer.consumer.Queue(event.QueueName)
if err != nil {
return "", errors.Wrapf(err, "failed to get/create queue(%s)", event.QueueName)
}
msgID, err := q.Send(event)
if err != nil {
return "", errors.Wrapf(err, "failed to send to queue(%s)", event.QueueName)
}
return msgID, nil
}