Dae*_*yth 7 java amazon-sqs amazon-web-services
我正在使用AWS SDK for Java,我正在使用缓冲异步sqs客户端来批量请求,这样我就可以降低成本.
当我的应用程序关闭时,我想确保缓冲区中没有消息等待,但是.flush()我无法在客户端上看到任何方法.
是否AmazonSQSBufferedAsyncClient.shutdown()调用时刷新我的邮件?我查看了源代码,目前还不清楚.该方法调用它拥有的shutdown()每一个QueueBuffer,但在QueueBuffer.shutdown()其中说
public void shutdown() {
//send buffer does not require shutdown, only
//shut down receive buffer
receiveBuffer.shutdown();
}
Run Code Online (Sandbox Code Playgroud)
此外,文档.shutdown()说:
关闭此客户端对象,释放可能保持打开的所有资源.这是一个可选方法,并且不希望调用者调用它,但是如果他们想要显式释放任何打开的资源.客户端关闭后,不应再用它来发出更多请求.
对于这个应用程序,我需要确保在缓冲时没有消息丢失.我是否需要使用普通AmazonSQSClient而不是缓冲/异步手动处理?
在 1.11.37 版本的 SDK 中,有一个专门用于此目的的配置参数QueueBufferConfig。
AmazonSQSBufferedAsyncClient bufClient =
new AmazonSQSBufferedAsyncClient(
realAsyncClient,
new QueueBufferConfig( )
.withFlushOnShutdown(true)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1413 次 |
| 最近记录: |