adds (approximate) lock_size to SQS broker

docs: added lock_size
This commit is contained in:
Ilan Steemers
2015-09-18 15:40:30 +02:00
parent 6af852fcee
commit 16c28a88e2
3 changed files with 9 additions and 0 deletions
+3
View File
@@ -27,6 +27,9 @@ class Sqs(Broker):
def queue_size(self): def queue_size(self):
return int(self.queue.attributes['ApproximateNumberOfMessages']) return int(self.queue.attributes['ApproximateNumberOfMessages'])
def lock_size(self):
return int(self.queue.attributes['ApproximateNumberOfMessagesNotVisible'])
def delete(self, task_id): def delete(self, task_id):
message = self.sqs.Message(self.queue.url, task_id) message = self.sqs.Message(self.queue.url, task_id)
message.delete() message.delete()
+1
View File
@@ -216,6 +216,7 @@ def test_sqs():
broker.acknowledge(task[0]) broker.acknowledge(task[0])
# duplicate acknowledge # duplicate acknowledge
broker.acknowledge(task[0]) broker.acknowledge(task[0])
assert broker.lock_size() == 0
# delete queue # delete queue
broker.enqueue('test') broker.enqueue('test')
broker.purge_queue() broker.purge_queue()
+5
View File
@@ -129,6 +129,11 @@ You can override this class if you want to contribute and support your own broke
Returns the amount of messages in the brokers queue. Returns the amount of messages in the brokers queue.
.. py:method:: lock_size()
Optional method that returns the number of messages currently awaiting acknowledgement.
Only implemented on brokers that support it.
.. py:method:: ping() .. py:method:: ping()
Returns True if the broker can be reached. Returns True if the broker can be reached.