55import boto3
66import logging
77
8- from boto .sqs .message import Message
98from botocore .config import Config
109from django .utils import timezone
1110
1716
1817
1918class WorkerService (object ):
20- PREFIX_STR = 'prefix:'
19+ _PREFIX_STR = 'prefix:'
20+
21+ _RECEIVE_COUNT_ATTRIBUTE = 'ApproximateReceiveCount'
2122
2223 def process_queues (self , queue_names ):
2324 # type: (list) -> None
@@ -29,16 +30,10 @@ def process_queues(self, queue_names):
2930 config = Config (retries = {'max_attempts' : settings .AWS_MAX_RETRIES })
3031 )
3132
32- sqs_client = boto3 .client (
33- 'sqs' ,
34- region_name = settings .AWS_REGION ,
35- config = Config (retries = {'max_attempts' : settings .AWS_MAX_RETRIES })
36- )
37-
38- prefixes = list (filter (lambda qn : qn .startswith (self .PREFIX_STR ), queue_names ))
33+ prefixes = list (filter (lambda qn : qn .startswith (self ._PREFIX_STR ), queue_names ))
3934 queues = self .get_queues_by_names (sqs , list (set (queue_names ) - set (prefixes )))
4035
41- queue_prefixes = [prefix .split (self .PREFIX_STR )[1 ] for prefix in prefixes ]
36+ queue_prefixes = [prefix .split (self ._PREFIX_STR )[1 ] for prefix in prefixes ]
4237 static_queues = queues
4338 last_update_time = timezone .make_aware (datetime .min )
4439
@@ -102,14 +97,16 @@ def poll_messages(self, queue):
10297 return queue .receive_messages (
10398 MaxNumberOfMessages = settings .MAX_NUMBER_OF_MESSAGES ,
10499 WaitTimeSeconds = settings .WAIT_TIME_S ,
105- AttributeNames = ['All' ]
100+ AttributeNames = [self . _RECEIVE_COUNT_ATTRIBUTE ]
106101 )
107102
108103 def process_message (self , msg , worker ):
109104 # type: (Message, Worker) -> None
110105 logger .debug ('[django-eb-sqs] Read message {}' .format (msg .message_id ))
111106 try :
112107 # worker.execute(msg.body)
108+ from time import sleep
109+ sleep (10 )
113110 logger .debug ('[django-eb-sqs] Processed message {}' .format (msg .message_id ))
114111
115112 print (msg .attributes )
0 commit comments