Say I have two existing queues: a queue process-queue and an error queue error-queue.
My error queue is never flagged as existing because the ListQueues operation is prefixed to the main queue name:
|
queues = sqs.list_queues(QueueNamePrefix=self._queue_name) |
|
main_queue_exists = False |
|
error_queue_exists = False |
|
if 'QueueUrls' in queues: |
|
for q in queues['QueueUrls']: |
|
qname = q.split('/')[-1] |
|
if qname == self._queue_name: |
|
main_queue_exists = True |
|
if self._error_queue_name and qname == self._error_queue_name: |
|
error_queue_exists = True |
The listener attempts to create the error queue since it wasn't found, and gets a QueueAlreadyExists error immediately.
If I specify the error queue as process-queue-error and it already exists, I don't get any errors, because it comes back in the ListQueues call that uses the prefix.
A couple solutions to this but it's a pretty big issue for anyone using pre-created queues.
Say I have two existing queues: a queue
process-queueand an error queueerror-queue.My error queue is never flagged as existing because the
ListQueuesoperation is prefixed to the main queue name:python-sqs-listener/sqs_listener/__init__.py
Lines 85 to 94 in 03400ca
The listener attempts to create the error queue since it wasn't found, and gets a
QueueAlreadyExistserror immediately.If I specify the error queue as
process-queue-errorand it already exists, I don't get any errors, because it comes back in theListQueuescall that uses the prefix.A couple solutions to this but it's a pretty big issue for anyone using pre-created queues.