rmqworker

package module
v1.13.2 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2021 License: MIT Imports: 9 Imported by: 0

README

rmqworker-lib

Библиотека, позволяющая работать с RMQ:

  1. покдлючение к RabbitMQ;
  2. поддержка соединения, переподключение;
  3. получение сообщений из очереди с помощью воркера;
  4. воркер для получения ответов на запросы;

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewRMQHandler

func NewRMQHandler(connData RMQConnectionData, logger ...*constants.Logger) (*RMQHandler, APIError)

NewRMQHandler - create new RMQHandler

Types

type APIError

type APIError *constants.APIError

APIError - error data container

type RMQConnectionData added in v1.0.1

type RMQConnectionData struct {
	User     string `json:"user"`
	Password string `json:"password"`
	Host     string `json:"host"`
	Port     string `json:"port"`
	UseTLS   string `json:"tls"`
}

RMQConnectionData - rmq connection data container

type RMQDeliveryCallback

type RMQDeliveryCallback func(w *RMQWorker, deliveryHandler RMQDeliveryHandler)

RMQDeliveryCallback - RMQ delivery callback function

type RMQDeliveryHandler added in v1.0.3

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

RMQDeliveryHandler - RMQ delivery data container

func NewRMQDeliveryHandler added in v1.0.14

func NewRMQDeliveryHandler(delivery amqp.Delivery) RMQDeliveryHandler

NewRMQDeliveryHandler - create new RMQ delivery handler

func (*RMQDeliveryHandler) Accept added in v1.0.3

func (d *RMQDeliveryHandler) Accept() APIError

Accept RMQ message delivery

func (*RMQDeliveryHandler) CheckResponseError added in v1.0.13

func (d *RMQDeliveryHandler) CheckResponseError() APIError

CheckResponseError - check RMQ response error

func (*RMQDeliveryHandler) GetCorrelationID added in v1.0.3

func (d *RMQDeliveryHandler) GetCorrelationID() string

GetCorrelationID from RMQ delivery

func (*RMQDeliveryHandler) GetHeader added in v1.0.5

func (d *RMQDeliveryHandler) GetHeader(headerName string) (interface{}, bool)

GetHeader from RMQ delivery headers. returns header value, is header exists (bool)

func (*RMQDeliveryHandler) GetMessageBody added in v1.0.4

func (d *RMQDeliveryHandler) GetMessageBody() []byte

GetMessageBody from RMQ delivery

func (*RMQDeliveryHandler) GetResponseRoutingKeyHeader added in v1.0.19

func (d *RMQDeliveryHandler) GetResponseRoutingKeyHeader() (string, APIError)

GetResponseRoutingKeyHeader - get response routing key from delivery headers

func (*RMQDeliveryHandler) GetRoutingKey added in v1.0.3

func (d *RMQDeliveryHandler) GetRoutingKey() string

GetRoutingKey from RMQ delivery

type RMQHandler

type RMQHandler struct {
	ConnectionData RMQConnectionData
	RMQConn        *amqp.Connection
	RMQChannel     *amqp.Channel
	Logger         *constants.Logger
	Cron           *simplecron.CronObject
}

RMQHandler - RMQ connection handler

func (*RMQHandler) DeclareExchanges

func (r *RMQHandler) DeclareExchanges(exchangeTypes map[string]string) APIError

DeclareExchanges - declare RMQ exchanges list. exchange name -> exchange type

func (*RMQHandler) DeclareQueues

func (r *RMQHandler) DeclareQueues(queues []string) APIError

DeclareQueues - declare RMQ exchanges list

func (*RMQHandler) DeleteQueues added in v1.0.10

func (r *RMQHandler) DeleteQueues(queueNames map[string][]string) APIError

DeleteQueues - delete RMQ queues. map[manager name] -> array of queue names

func (*RMQHandler) NewRMQHandler added in v1.0.20

func (r *RMQHandler) NewRMQHandler() (*RMQHandler, APIError)

NewRMQHandler - clone handler & open new RMQ channel

func (*RMQHandler) NewRMQMonitoringWorker added in v1.0.2

func (r *RMQHandler) NewRMQMonitoringWorker(task RMQMonitoringWorkerTask) (*RMQMonitoringWorker, APIError)

NewRMQMonitoringWorker - declare queue, bind to exchange, create worker & run. monitoring worker used for create a queue and receive messages from exchange into it

func (*RMQHandler) NewRMQWorker

func (r *RMQHandler) NewRMQWorker(
	QueueName string,
	callback RMQDeliveryCallback,
) (*RMQWorker, APIError)

NewRMQWorker - create new RMQ worker to receive messages

func (*RMQHandler) RMQPublishInterfaceToQueue added in v1.0.15

func (r *RMQHandler) RMQPublishInterfaceToQueue(task RMQPublishRequestTask, message interface{}) APIError

RMQPublishInterfaceToQueue - another version of rmqPublishToQueue. use `message` instead of `task.MessageBody`

func (*RMQHandler) RMQPublishToExchange added in v1.0.18

func (r *RMQHandler) RMQPublishToExchange(message interface{}, exchangeName, routingKey string) APIError

RMQPublishToExchange - publish message to exchange

func (*RMQHandler) RMQPublishToQueue added in v1.0.12

func (r *RMQHandler) RMQPublishToQueue(task RMQPublishRequestTask) APIError

RMQPublishToQueue - send request to rmq queue

func (*RMQHandler) RMQQueueDeclareAndBind added in v1.0.9

func (r *RMQHandler) RMQQueueDeclareAndBind(task RMQQueueDeclareTask) APIError

RMQQueueDeclareAndBind - declare queue & bind to exchange

func (*RMQHandler) SendRMQResponse added in v1.0.6

func (r *RMQHandler) SendRMQResponse(
	task *RMQPublishResponseTask,
	errorMsg ...*constants.APIError,
) APIError

SendRMQResponse - publish message to RMQ exchange

type RMQMonitoringWorker added in v1.0.2

type RMQMonitoringWorker struct {
	Worker *RMQWorker
}

RMQMonitoringWorker - rmq extended worker

func (*RMQMonitoringWorker) AwaitFinish added in v1.0.2

func (w *RMQMonitoringWorker) AwaitFinish()

AwaitFinish - await worker finished

func (*RMQMonitoringWorker) GetID added in v1.8.0

func (w *RMQMonitoringWorker) GetID() string

GetID - get worker ID

func (*RMQMonitoringWorker) GetName added in v1.8.0

func (w *RMQMonitoringWorker) GetName() string

GetName - get worker name

func (*RMQMonitoringWorker) Pause added in v1.0.2

func (w *RMQMonitoringWorker) Pause()

Pause handle rmq messages

func (*RMQMonitoringWorker) Reset added in v1.2.0

func (w *RMQMonitoringWorker) Reset()

Reset worker channels

func (*RMQMonitoringWorker) Resume added in v1.0.2

func (w *RMQMonitoringWorker) Resume()

Resume handle rmq messages

func (*RMQMonitoringWorker) Stop added in v1.0.2

func (w *RMQMonitoringWorker) Stop()

Stop listen rmq messages

type RMQMonitoringWorkerTask added in v1.0.7

type RMQMonitoringWorkerTask struct {
	// required
	QueueName        string
	ISQueueDurable   bool
	ISAutoDelete     bool
	FromExchangeName string
	RoutingKey       string // to bind queue to response exchange
	Callback         RMQDeliveryCallback

	// optional
	ID              string
	Timeout         time.Duration
	TimeoutCallback RMQTimeoutCallback
}

RMQMonitoringWorkerTask - new RMQ request->response monitoring worker data

type RMQPublishRequestTask added in v1.0.11

type RMQPublishRequestTask struct {
	QueueName          string
	ResponseRoutingKey string
	MessageBody        interface{}
}

RMQPublishRequestTask - publish message to RMQ task data container

type RMQPublishResponseTask added in v1.0.6

type RMQPublishResponseTask struct {
	ExchangeName       string
	ResponseRoutingKey string
	CorrelationID      string
	MessageBody        interface{}
}

RMQPublishResponseTask - response for publish message to RMQ request

type RMQQueueDeclareTask added in v1.0.8

type RMQQueueDeclareTask struct {
	QueueName        string
	Durable          bool
	AutoDelete       bool
	FromExchangeName string
	RoutingKey       string
}

RMQQueueDeclareTask - queue declare task data container

type RMQTimeoutCallback

type RMQTimeoutCallback func(w *RMQWorker)

RMQTimeoutCallback - RMQ response timeout callback function

type RMQWorker

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

RMQWorker - just RMQ worker

func (*RMQWorker) AwaitFinish added in v1.0.2

func (w *RMQWorker) AwaitFinish()

AwaitFinish - wait for worker finished

func (*RMQWorker) GetID added in v1.8.0

func (w *RMQWorker) GetID() string

GetID - get worker ID

func (*RMQWorker) GetName added in v1.8.0

func (w *RMQWorker) GetName() string

GetName - get worker name

func (*RMQWorker) HandleReconnect added in v1.0.2

func (w *RMQWorker) HandleReconnect()

HandleReconnect - reconnect to RMQ delivery (messages)

func (*RMQWorker) Listen added in v1.0.2

func (w *RMQWorker) Listen()

Listen RMQ messages

func (*RMQWorker) Pause added in v1.0.2

func (w *RMQWorker) Pause()

Pause RMQ Worker (ignore messages)

func (*RMQWorker) Reset added in v1.2.0

func (w *RMQWorker) Reset()

Reset worker channels

func (*RMQWorker) Resume added in v1.0.2

func (w *RMQWorker) Resume()

Resume RMQ Worker (continue listen messages)

func (*RMQWorker) Serve added in v1.0.2

func (w *RMQWorker) Serve()

Serve - listen RMQ messages

func (*RMQWorker) SetAutoAck added in v1.0.2

func (w *RMQWorker) SetAutoAck(autoAck bool) *RMQWorker

SetAutoAck - auto accept messages. This will also change the auto-acceptance of messages by the library (!autoAck)

func (*RMQWorker) SetAutoAckByLib added in v1.11.2

func (w *RMQWorker) SetAutoAckByLib(autoAck bool) *RMQWorker

SetAutoAckByLib - auto accept messages

func (*RMQWorker) SetCheckResponseErrors added in v1.0.2

func (w *RMQWorker) SetCheckResponseErrors(check bool) *RMQWorker

SetCheckResponseErrors - determines whether the errors in the answers passed to headers will be checked

func (*RMQWorker) SetID added in v1.0.2

func (w *RMQWorker) SetID(id string) *RMQWorker

SetID - set RMQ worker ID

func (*RMQWorker) SetName added in v1.0.2

func (w *RMQWorker) SetName(name string) *RMQWorker

SetName - set RMQ worker name for logs

func (*RMQWorker) SetSyncMode added in v1.3.0

func (w *RMQWorker) SetSyncMode(sync bool) *RMQWorker

SetSyncMode - whether to run the callback of task processing synchronously

func (*RMQWorker) SetTimeout added in v1.0.2

func (w *RMQWorker) SetTimeout(timeout time.Duration, callback RMQTimeoutCallback) *RMQWorker

SetTimeout - set RMQ response timeout. When the timer goes out, the callback will be called

func (*RMQWorker) Stop added in v1.0.2

func (w *RMQWorker) Stop()

Stop RMQ messages listen

func (*RMQWorker) Subscribe added in v1.0.2

func (w *RMQWorker) Subscribe() APIError

Subscribe to RMQ messages

Jump to

Keyboard shortcuts

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