Skip to content

Commit acbfc0e

Browse files
Refactor SQS message handling in SQSService to use UUIDs for MessageGroupId and MessageDeduplicationId, ensuring unique message processing for FIFO queues.
1 parent aca8243 commit acbfc0e

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

aws/sqs_service.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from aws.boto_aws import get_instance_aws, ServiceNameAWS
22
from config import config
3+
from botocore.exceptions import ClientError
34
from typing import Dict
45
import json
56
import logging
6-
import boto3
7-
from botocore.exceptions import ClientError
7+
import uuid
88

99
logger = logging.getLogger(__name__)
1010

@@ -17,13 +17,13 @@ def send_message(self, message: Dict):
1717
try:
1818
# Add MessageGroupId for FIFO queue
1919
# Using order_id as MessageGroupId to ensure messages for the same order are processed in order
20-
message_group_id = str(message.get('order_id', 'default'))
21-
20+
message_group_id = str(uuid.uuid4())
21+
message_deduplication_id = str(uuid.uuid4())
2222
response = self.aws.send_message(
2323
QueueUrl=self.queue_url,
2424
MessageBody=json.dumps(message),
2525
MessageGroupId=message_group_id,
26-
MessageDeduplicationId=f"{message_group_id}_{message.get('email', '')}" # Ensure unique messages per order/email
26+
MessageDeduplicationId=message_deduplication_id,
2727
)
2828
logger.info(f"Mensagem enviada com sucesso: {response['MessageId']}")
2929
return response

0 commit comments

Comments
 (0)