SQS - Delivery Delay of 30 minutes

前端 未结 4 1331
梦如初夏
梦如初夏 2021-01-04 21:33

From the documentation of SQS, Max time delay we can configure for a message to hide from its consumers is 15 minutes - http://docs.aws.amazon.com/AWSSimpleQueueService/late

4条回答
  •  臣服心动
    2021-01-04 21:48

    The simplest way to do this is as follows:

    SQS.push_to_queue({perform_message_at : "Thursday November 2022"},delay: 15 mins)
    

    Inside your worker

    message = SQS.poll_messages
    if message.perform_message_at > Time.now
       SQS.push_to_queue({perform_message_at : "Thursday November 
       2022"},delay:15 mins)
    else
       process_message(message)
    end
    

    Basically push the message back to the queue with the maximum delay and only process it when its processing time is less than the current time.

    HTH.

提交回复
热议问题