Amazon web services SQS-安排要取消传递的消息

Amazon web services SQS-安排要取消传递的消息,amazon-web-services,queue,amazon-sqs,Amazon Web Services,Queue,Amazon Sqs,我想在SQS上发布一条消息,并在几个小时后处理该消息 如何根据某些属性安排消息传递或从SQS中选择消息 我已经实现了一个SQS消费者,但我正在接收来自SQS队列的每条消息。可以在SQS上实现类似的功能吗?我正在考虑接收每一条消息,并在没有时间处理该消息时再次发送到队列。在SQS中有一个称为的功能,其中,如果您在队列上设置延迟,则只有在延迟持续时间过后,用户才能使用放入队列的任何消息。但是,您可以设置的最大延迟为15分钟,如果您希望延迟几个小时,这可能不会直接对您起作用 另一个选项是为消息设置高于

我想在SQS上发布一条消息,并在几个小时后处理该消息

如何根据某些属性安排消息传递或从SQS中选择消息


我已经实现了一个SQS消费者,但我正在接收来自SQS队列的每条消息。可以在SQS上实现类似的功能吗?我正在考虑接收每一条消息,并在没有时间处理该消息时再次发送到队列。

在SQS中有一个称为的功能,其中,如果您在队列上设置延迟,则只有在延迟持续时间过后,用户才能使用放入队列的任何消息。但是,您可以设置的最大延迟为15分钟,如果您希望延迟几个小时,这可能不会直接对您起作用

另一个选项是为消息设置高于所需延迟时间的可视超时。然后,当您阅读消息时,您可以获得消息时间戳。如果还有一段时间等待您的延迟,那么您可以让您的消费者睡眠剩余的时间,在消费者醒来后,您可以处理该消息。但是,这不是一种推荐的方法,而且效率很低,因为您的线程被阻塞了。事实上,如果您的延迟还有一段时间,那么您可以将消息保存在本地列表/数组中,检查其他消息,并在延迟后处理此消息。但所有这些都需要整个逻辑驻留在您的代码中,而您并没有从AWS获得任何现成的特性