| 105 | } |
| 106 | |
| 107 | func dequeueMessage() ([]Message, error) { |
| 108 | req := &sqs.ReceiveMessageInput{ |
| 109 | MaxNumberOfMessages: aws.Int64(10), |
| 110 | QueueUrl: aws.String(MessageQueueUrl), |
| 111 | WaitTimeSeconds: aws.Int64(10), |
| 112 | } |
| 113 | |
| 114 | res, err := SQS().ReceiveMessage(req) |
| 115 | |
| 116 | if err != nil { |
| 117 | return nil, err |
| 118 | } |
| 119 | |
| 120 | messages := make([]Message, len(res.Messages)) |
| 121 | |
| 122 | var message Message |
| 123 | |
| 124 | for i, m := range res.Messages { |
| 125 | err = json.Unmarshal([]byte(*m.Body), &message) |
| 126 | |
| 127 | if err != nil { |
| 128 | return nil, err |
| 129 | } |
| 130 | |
| 131 | message.MessageID = m.MessageId |
| 132 | message.ReceiptHandle = m.ReceiptHandle |
| 133 | |
| 134 | messages[i] = message |
| 135 | } |
| 136 | |
| 137 | return messages, nil |
| 138 | } |
| 139 | |
| 140 | func ackMessage(messages []Message) (int, error) { |
| 141 | dreq := &sqs.DeleteMessageBatchInput{ |