instead of ack+message-id just -ack message-id
parent
839289ea81
commit
4beaa4c387
27
main.go
27
main.go
|
|
@ -23,16 +23,15 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
AWSA string
|
AWSA string
|
||||||
AWSU string
|
AWSU string
|
||||||
AWSP string
|
AWSP string
|
||||||
AWSR string
|
AWSR string
|
||||||
Topic string
|
Topic string
|
||||||
Message string
|
Message string
|
||||||
REMSWrap bool
|
REMSWrap bool
|
||||||
MessageID string
|
Ack string
|
||||||
Ack bool
|
Pub bool
|
||||||
Pub bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type isoc struct{}
|
type isoc struct{}
|
||||||
|
|
@ -84,9 +83,8 @@ func getConfig() (Config, error) {
|
||||||
flag.StringVar(&c.AWSR, "awsr", "eu-central-1", "aws region")
|
flag.StringVar(&c.AWSR, "awsr", "eu-central-1", "aws region")
|
||||||
flag.StringVar(&c.Topic, "topic", "rems-queue-prod-fra1-priority-low", "sns topic/sqs queue")
|
flag.StringVar(&c.Topic, "topic", "rems-queue-prod-fra1-priority-low", "sns topic/sqs queue")
|
||||||
flag.StringVar(&c.Message, "message", `{"messageType": "NoOpMessage"}`, "published message")
|
flag.StringVar(&c.Message, "message", `{"messageType": "NoOpMessage"}`, "published message")
|
||||||
flag.StringVar(&c.MessageID, "message-id", "", "sqs message id to ack")
|
flag.StringVar(&c.Ack, "ack", "", "sqs message id to ack")
|
||||||
flag.BoolVar(&c.REMSWrap, "rems-wrap", true, "rems wrap message")
|
flag.BoolVar(&c.REMSWrap, "rems-wrap", true, "rems wrap message")
|
||||||
flag.BoolVar(&c.Ack, "ack", true, "ack message matching message-id")
|
|
||||||
flag.BoolVar(&c.Pub, "pub", false, "publish message")
|
flag.BoolVar(&c.Pub, "pub", false, "publish message")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
|
@ -148,7 +146,7 @@ func (c Config) Consume(ctx context.Context) error {
|
||||||
wrap.Unwrap([]byte(*message.Body), &v, isoc{})
|
wrap.Unwrap([]byte(*message.Body), &v, isoc{})
|
||||||
}
|
}
|
||||||
log.Printf("message in queue: %s: %s: %+v", *message.MessageId, *message.Body, v)
|
log.Printf("message in queue: %s: %s: %+v", *message.MessageId, *message.Body, v)
|
||||||
if *message.MessageId != c.MessageID {
|
if *message.MessageId != c.Ack {
|
||||||
if err := c.unack(ctx, message); err != nil {
|
if err := c.unack(ctx, message); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -175,9 +173,6 @@ func (c Config) unack(ctx context.Context, message *sqs.Message) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Config) ack(ctx context.Context, message *sqs.Message) error {
|
func (c Config) ack(ctx context.Context, message *sqs.Message) error {
|
||||||
if !c.Ack {
|
|
||||||
return c.unack(ctx, message)
|
|
||||||
}
|
|
||||||
client := sqs.New(session.Must(session.NewSession()), c.awsc())
|
client := sqs.New(session.Must(session.NewSession()), c.awsc())
|
||||||
if _, err := client.DeleteMessageWithContext(ctx, &sqs.DeleteMessageInput{
|
if _, err := client.DeleteMessageWithContext(ctx, &sqs.DeleteMessageInput{
|
||||||
QueueUrl: aws.String(c.sqsurl()),
|
QueueUrl: aws.String(c.sqsurl()),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue