Documentation ¶
Index ¶
- Constants
- func ConsumeFromRabbitMQ(conn *amqp.Connection, queueName string) (*amqp.Channel, <-chan amqp.Delivery, error)
- func ConsumeFromReplyQueue(ch *amqp.Channel) (<-chan amqp.Delivery, error)
- func FailOnError(err error, msg string)
- func LogOnError(err error, msg string)
- func NewReceiver(rabbitmqURL, queueName, webEndpoint string) (*receiver, error)
- func NewSender(rabbitmqURL string) (*sender, error)
- func RandStr() string
- type MaestroRequest
- type Receiver
- type Sender
- type SenderRequest
- type SenderResponse
Constants ¶
View Source
const RabbitMQDirectyReplyQueueName = "amq.rabbitmq.reply-to"
see https://www.rabbitmq.com/direct-reply-to.html
View Source
const RabbitMQMessagePrefetchCount = 1
to load balance consumers https://www.rabbitmq.com/confirms.html#channel-qos-prefetch
Variables ¶
This section is empty.
Functions ¶
func ConsumeFromRabbitMQ ¶
func ConsumeFromReplyQueue ¶
ConsumeFromReplyQueue implements https://www.rabbitmq.com/direct-reply-to.html
func FailOnError ¶
func LogOnError ¶
func NewReceiver ¶
Types ¶
type MaestroRequest ¶
type MaestroRequest struct { Text string `json:"text" bson:"text"` TextFormat string `json:"text_format" bson:"text_format"` SourceLanguage string `json:"source_language" bson:"source_language"` TargetLanguage string `json:"target_language" bson:"target_language"` UID string `json:"uid"` }
func (MaestroRequest) ToJSON ¶
func (r MaestroRequest) ToJSON() []byte
type Sender ¶
type Sender interface { // Do a request + response using RabbitMQ queues Do(req SenderRequest) (*SenderResponse, error) // Release all resources Close() }
Sender is an "sidecar" that almost implements a http.Client capable of doing POST/GET/PUT requests using rabbitMQ queues and sidecar processes
type SenderRequest ¶
type SenderRequest struct { // fields mimmick their HTTP equivalents Host string Method string Path string Body []byte ContentType string // ID is required for Sender to identify the response that is sent in a different msg queue ID string // Timeout for request/response to complete Timeout time.Duration }
SenderRequest mimmicks the data needed for doing an HTTP request
func (*SenderRequest) HasError ¶
func (req *SenderRequest) HasError() error
type SenderResponse ¶
Click to show internal directories.
Click to hide internal directories.