Skip to content

Instantly share code, notes, and snippets.

@mannion007
Created February 26, 2020 23:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mannion007/7e6a79c91836373a2356ff18d7d0f93d to your computer and use it in GitHub Desktop.
Save mannion007/7e6a79c91836373a2356ff18d7d0f93d to your computer and use it in GitHub Desktop.
SQS receive and delete
package main
import (
"fmt"
"log"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/sqs"
)
func main() {
var queueURL string = "QUEUE URL HERE"
var maxMessages int64 = 5
var longPollDur int64 = 10
sess := session.Must(
session.NewSession(&aws.Config{Region: aws.String("REGION THE QUEUE IS IN HERE")}),
)
client := sqs.New(sess)
recIn := sqs.ReceiveMessageInput{
QueueUrl: &queueURL,
MaxNumberOfMessages: &maxMessages,
WaitTimeSeconds: &longPollDur,
}
resp, err := client.ReceiveMessage(&recIn)
if err != nil {
log.Fatal(err)
}
for key, msg := range resp.Messages {
fmt.Printf("The body of message #%d is [%s]\n", key, *msg.Body)
_, err := client.DeleteMessage(
&sqs.DeleteMessageInput{
QueueUrl: &queueURL,
ReceiptHandle: msg.ReceiptHandle,
},
)
if err != nil {
log.Fatal(err)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment