Correct answer - "Use the ChangeMessageVisibility API at the Consumer Level": Here, the question
is saying that it takes an unpredictably long time to process messages.
Therefore, the consumer must, in case of long processing happening, use the
ChangeMessageVisibility API to extend their message timeout and process the message
until the end while making sure other consumers won't see that message.
Incorrect:
"Use DeleteMessage" - This deletes the message however you may not be able to delete in time
before the message gets sent again
"Change the Visibility Timeout of the Queue" - Here, we cannot predict the consuming time of any
message and therefore it's impossible for us to determine a global visilibility timeout. This is
why we need our consumers to change them at the message level based on how long they are taking
to process messages.
"Use Long Polling" - Eliminates the number of empty responses