Apache Camel SQS 是与 Amazon Simple Queue Service (SQS) 集成的组件,并提供了可见性超时和默认可见性超时两种设置。
可见性超时 (visibility timeout) 是指当某个消息被接收后,处于“正在处理”状态直至被删除之前,此消息不再可见的时间间隔。默认值为 30 秒,最长可设置为 12 小时。
默认可见性超时 (default visibility timeout) 是指在创建队列时设置的所有消息的默认可见性超时时间。如果未设置单个消息的可见性超时,那么将使用此默认值。默认值为 30 秒,在队列中创建新消息时可以自行设置可见性超时。
下面是一个示例代码,演示如何使用 Apache Camel SQS 设置可见性超时和默认可见性超时:
from("aws-sqs://MyQueue?amazonSQSClient=#sqsClient&defaultVisibilityTimeout=60&visibilityTimeout=90")
.log("${body}")
.to("mock:result");
在此示例中,我们使用 aws-sqs
组件从 Amazon SQS 中订阅 MyQueue。在此之前,我们需要创建 AmazonSQSClient 实例并将其设置为 sqsClient
属性。
我们设置 defaultVisibilityTimeout
为 60 秒,并设置 visibilityTimeout
为 90 秒,以便在处理单个消息时调整可见性超时时间。
最后,我们将消息主体记录在日志中并发送到 mock:result
。