Documentation ¶
Overview ¶
Package sqs provides a simple client to interact with a AWS SQS (Amazon Simple Queue Service), including the ability to send, receive, and delete messages.
It is based on the official aws-sdk-go-v2 library.
Ref.: https://docs.aws.amazon.com/sdk-for-go/api/service/sqs/
Index ¶
- Constants
- func MessageDecode(msg string, data any) error
- func MessageEncode(data any) (string, error)
- type Client
- func (c *Client) Delete(ctx context.Context, receiptHandle string) error
- func (c *Client) HealthCheck(ctx context.Context) error
- func (c *Client) Receive(ctx context.Context) (*Message, error)
- func (c *Client) ReceiveData(ctx context.Context, data any) (string, error)
- func (c *Client) Send(ctx context.Context, message string) error
- func (c *Client) SendData(ctx context.Context, data any) error
- type Message
- type Option
- type SQS
Constants ¶
const ( // DefaultWaitTimeSeconds is the default duration (in seconds) for which the call waits for a message to arrive in the queue before returning. // This must be between 0 and 20 seconds. DefaultWaitTimeSeconds = 20 // DefaultVisibilityTimeout is the default duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request. DefaultVisibilityTimeout = 600 )
Variables ¶
This section is empty.
Functions ¶
func MessageDecode ¶
MessageDecode decodes a message encoded with MessageEncode to the provided data object. The value underlying data must be a pointer to the correct type for the next data item received.
func MessageEncode ¶
MessageEncode encodes and serialize the input data to a string compatible with SQS.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a wrapper for the SQS client in the AWS SDK.
func New ¶
New creates a new instance of the SQS client wrapper. msgGroupID is required for FIFO queues.
func (*Client) HealthCheck ¶
HealthCheck checks if the current queue is present in the current region and returns an error otherwise.
func (*Client) Receive ¶
Receive retrieves a raw string message from the queue. This function will wait up to WaitTimeSeconds seconds for a message to be available, otherwise it will return nil. Once retrieved, a message will not be visible for up to VisibilityTimeout seconds. Once processed the message should be removed from the queue by calling the Delete method.
func (*Client) ReceiveData ¶
ReceiveData retrieves a message from the queue, extract its content in the data and returns the ReceiptHandle. The value underlying data must be a pointer to the correct type for the next data item received. This function will wait up to WaitTimeSeconds seconds for a message to be available, otherwise it will return an empty ReceiptHandle. Once retrieved, a message will not be visible for up to VisibilityTimeout seconds. Once processed the message should be removed from the queue by calling the Delete method. In case of decoding error the returned receipt handle will be not empty, so it can be used to delete the message.
type Message ¶
type Message struct { // Body is the message content and can contain: JSON, XML or plain text. Body string // ReceiptHandle is the identifier used to delete the message. ReceiptHandle string }
Message represents a message in the queue.
type Option ¶
type Option func(*cfg)
Option is a type to allow setting custom client options.
func WithAWSOptions ¶
WithAWSOptions allows to add an arbitrary AWS options.
func WithVisibilityTimeout ¶
WithVisibilityTimeout overrides the default duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request. Values range: 0 to 43200. Maximum: 12 hours.
func WithWaitTimeSeconds ¶
WithWaitTimeSeconds overrides the default duration (in seconds) for which the call waits for a message to arrive in the queue before returning. Values range: 0 to 20 seconds.
type SQS ¶
type SQS interface { DeleteMessage(ctx context.Context, params *sqs.DeleteMessageInput, optFns ...func(*sqs.Options)) (*sqs.DeleteMessageOutput, error) GetQueueAttributes(ctx context.Context, params *sqs.GetQueueAttributesInput, optFns ...func(*sqs.Options)) (*sqs.GetQueueAttributesOutput, error) ReceiveMessage(ctx context.Context, params *sqs.ReceiveMessageInput, optFns ...func(*sqs.Options)) (*sqs.ReceiveMessageOutput, error) SendMessage(ctx context.Context, params *sqs.SendMessageInput, optFns ...func(*sqs.Options)) (*sqs.SendMessageOutput, error) }
SQS represents the mockable functions in the AWS SDK SQS client.