rabbit

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2019 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Binding

type Binding struct {
	Exchange    string   `mapstructure:"exchange"`
	RoutingKeys []string `mapstructure:"routing_keys"`
	Options     Options  `mapstructure:"options"`
}

Binding describe how a queue connects to a exchange.

type Config

type Config struct {
	// Connections describe the connections used by consumers.
	Connections map[string]Connection `mapstructure:"connections" default:"{}"`
	// Exchanges have all the exchanges used by consumers.
	// This exchanges are declared on startup of the rabbitMQ factory.
	Exchanges map[string]ExchangeConfig `mapstructure:"exchanges" default:"{}"`
	// DeadLetters have all the deadletters queues used internally by other queues
	// This will be declared at startup of the rabbitMQ factory
	DeadLetters map[string]DeadLetter `mapstructure:"dead_letters" default:"{}"`
	// Consumers describes configuration list for consumers.
	Consumers map[string]ConsumerConfig `mapstructure:"consumers" default:"{}"`
	//Versioning internal config - used to mount the user agents
	Version string
}

Config describes all available options for amqp connection creation.

type Connection

type Connection struct {
	DSN     string        `mapstructure:"dsn"`
	Timeout time.Duration `mapstructure:"timeout" default:"2s"`
	Sleep   time.Duration `mapstructure:"sleep" default:"500ms"`
	Retries int           `mapstructure:"retries" default:"5"`
}

Connection describe a config for one connection.

type ConsumerConfig

type ConsumerConfig struct {
	Connection    string        `mapstructure:"connection"`
	MaxWorkers    int           `mapstructure:"workers" default:"1"`
	PrefetchCount int           `mapstructure:"prefetch_count" default:"10"`
	DeadLetter    string        `mapstructure:"dead_letter"`
	Queue         QueueConfig   `mapstructure:"queue"`
	Options       Options       `mapstructure:"options"`
	Runner        runner.Config `mapstructure:"runner"`
}

ConsumerConfig describes consumer's configuration.

type DeadLetter added in v0.1.2

type DeadLetter struct {
	Queue QueueConfig `mapstructure:"queue"`
}

DeadLetter describe all the dead letters queues to be declared before declare other queues.

type ExchangeConfig

type ExchangeConfig struct {
	Type    string  `mapstructure:"type"`
	Options Options `mapstructure:"options"`
}

ExchangeConfig describes exchange's configuration.

type Factory

type Factory struct {
	// contains filtered or unexported fields
}

Factory is the block responsible for create consumers and restart the rabbitMQ connections.

func NewFactory

func NewFactory(config Config, h *hub.Hub) (*Factory, error)

NewFactory will open the initial connections and start the recover connections procedure.

func (*Factory) CreateConsumer

func (f *Factory) CreateConsumer(name string) (supervisor.Consumer, error)

CreateConsumer create a new consumer for a specific name using the config provided.

func (*Factory) CreateConsumers

func (f *Factory) CreateConsumers() ([]supervisor.Consumer, error)

CreateConsumers will iterate over config and create all the consumers

func (*Factory) Name

func (f *Factory) Name() string

Name return the factory name

type Options

type Options struct {
	Durable    bool       `mapstructure:"durable"`
	Internal   bool       `mapstructure:"internal"`
	AutoDelete bool       `mapstructure:"auto_delete"`
	Exclusive  bool       `mapstructure:"exclusive"`
	NoWait     bool       `mapstructure:"no_wait"`
	NoLocal    bool       `mapstructure:"no_local"`
	AutoAck    bool       `mapstructure:"auto_ack"`
	Args       amqp.Table `mapstructure:"args" default:"{}"`
}

Options describes optionals configuration for consumer, queue, bindings and exchanges.

type QueueConfig

type QueueConfig struct {
	Name     string    `mapstructure:"name"`
	Bindings []Binding `mapstructure:"bindings"`
	Options  Options   `mapstructure:"options"`
}

QueueConfig describes queue's configuration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL