Repository navigation
Conversation
| (provider-queue-visibility-timeout) | ||
|
|
||
| ;; The Index Delete queue | ||
| (= queue-name "cmr_index_delete.queue") |
There was a problem hiding this comment.
So this value "cmr_index_delete.queue" comes from indexer.config and this method is in message-queue-lib. Indexer already pulls in message-queue-lib as a dependency. If this func (from message-queue-lib) pulls in indexer to get the queue name, then it will create a circular dependency.
The options are keep the hardcoded name as it.
Or do the pattern established like how provider got its queue name with a string match func above
Or refactor queue names from indexer to all live in message-queue-lib
I was hesitant about the string match because I didn't want it to accidentally match some other very closely named queue that would be created elsewhere in the future.
I can refactor the queue names to live in message-queue-lib instead of indexer, but this template will have to be updated for the other apps (like metadata-db) at some point too to make it clean (which we can put in a diff ticket)
LMK your thoughts
There was a problem hiding this comment.
I think there is an option that avoids both problems, :queues-to-policies is used by bootstrap for its 12h timeout.
:queues-to-policies {(bootstrap-queue-name) {:max-tries 1
;; max 12 hours visibility timeout
:visibility-timeout-secs 43200}}
you can probably do:
:queues-to-policies
{(index-delete-queue-name) {:visibility-timeout-secs (index-delete-queue-visibility-timeout-secs)}}
then the sqs.clj changes can be reverted.
There was a problem hiding this comment.
but that is bootstrap, how will that change message-queue-lib? That is where the index-delete queue is created
There was a problem hiding this comment.
ok got your message and made the change
|
I do realize I have a lot of debug logs I created, I can remove the ones you believe are unnecessary. Some I left in there for testing so that the dev can see that the old concepts are being sent to the right queues vs the new cascade coll deletes are being sent to the new queue |
Overview
What is the objective?
To let large collections be deleted properly without timeout or server errors
What are the changes?
What areas of the application does this impact?
Cascade collection delete - ingest, indexer, metadata-db
Required Checklist
Additional Checklist