From b7e5cd537873db1531df7c66e4bcf4c27a752c2a Mon Sep 17 00:00:00 2001 From: "DESKTOP-ONTGILH\\Admin" Date: Sun, 31 Jan 2021 14:35:08 +0700 Subject: [PATCH] -Refactor code --- consumer.go | 10 +++++----- func.go | 4 ++-- producer.go | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/consumer.go b/consumer.go index 6c7a04c..1f42639 100644 --- a/consumer.go +++ b/consumer.go @@ -28,7 +28,7 @@ func NewConsumer(client *sqs.SQS, queueURL string, ackOnConsume bool, visibility return &Consumer{Client: client, QueueURL: &queueURL, AckOnConsume: ackOnConsume, VisibilityTimeout: visibilityTimeout, WaitTimeSeconds: waitTimeSeconds} } -func (c *Consumer) Consume(ctx context.Context, caller mq.ConsumerCaller) { +func (c *Consumer) Consume(ctx context.Context, handle func(context.Context, *mq.Message, error) error) { result, er1 := c.Client.ReceiveMessage(&sqs.ReceiveMessageInput{ AttributeNames: []*string{ aws.String(sqs.MessageSystemAttributeNameSentTimestamp), @@ -42,7 +42,7 @@ func (c *Consumer) Consume(ctx context.Context, caller mq.ConsumerCaller) { WaitTimeSeconds: aws.Int64(c.WaitTimeSeconds), }) if er1 != nil { - caller.Call(ctx, nil, er1) + handle(ctx, nil, er1) } else { if len(result.Messages) > 0 { m := result.Messages[0] @@ -60,12 +60,12 @@ func (c *Consumer) Consume(ctx context.Context, caller mq.ConsumerCaller) { ReceiptHandle: result.Messages[0].ReceiptHandle, }) if er2 != nil { - caller.Call(ctx, nil, er2) + handle(ctx, nil, er2) } else { - caller.Call(ctx, &message, nil) + handle(ctx, &message, nil) } } else { - caller.Call(ctx, &message, nil) + handle(ctx, &message, nil) } } } diff --git a/func.go b/func.go index ca83458..800ed9e 100644 --- a/func.go +++ b/func.go @@ -15,10 +15,10 @@ func GetQueueUrl(client *sqs.SQS, queueName string) (string, error) { return *result.QueueUrl, err } -func MapToAttributes(messageAttributes *map[string]string) map[string]*sqs.MessageAttributeValue { +func MapToAttributes(messageAttributes map[string]string) map[string]*sqs.MessageAttributeValue { attributes := make(map[string]*sqs.MessageAttributeValue) if messageAttributes != nil { - for k, v := range *messageAttributes { + for k, v := range messageAttributes { x := sqs.MessageAttributeValue{ DataType: aws.String("String"), StringValue: aws.String(v), diff --git a/producer.go b/producer.go index c97812f..1a5fd95 100644 --- a/producer.go +++ b/producer.go @@ -25,7 +25,7 @@ func NewProducer(client *sqs.SQS, queueURL string, delaySeconds *int64) *Produce return &Producer{Client: client, QueueURL: &queueURL, DelaySeconds: delaySeconds} } -func (p *Producer) Produce(ctx context.Context, data []byte, messageAttributes *map[string]string) (string, error) { +func (p *Producer) Produce(ctx context.Context, data []byte, messageAttributes map[string]string) (string, error) { attributes := MapToAttributes(messageAttributes) s := string(data) result, err := p.Client.SendMessage(&sqs.SendMessageInput{