Skip to content
Snippets Groups Projects
Select Git revision
  • 8190f92a5f6eb416f138574dc3c42f15dcc54d4c
  • main default protected
  • v1.298.0
  • v1.297.0
  • v1.296.0
  • v1.295.0
  • v1.294.0
  • v1.293.0
  • v1.292.0
  • v1.291.0
  • v1.290.0
  • v1.289.0
  • v1.288.0
  • v1.287.0
  • v1.286.0
  • v1.285.0
  • v1.284.0
  • v1.283.0
  • v1.282.0
  • v1.281.0
  • v1.280.0
  • v1.279.0
22 results

producer.go

Blame
  • 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
    }