如何確保在創建具有相同標記的新SNS應用程序端點之前安全刪除了我的SNS應用程序端點?我有一個ProgressListner的刪除方法,但是當我檢查刪除的端點時,它仍然存在很短的時間。如何保證AWS SNS deleteEndpoint已被刪除
我預料在收到CLIENT_REQUEST_SUCCESS_EVENT時,刪除已完成100%。我使用AmazonSNSClient不AmazonSNSAsyncClient
public void deleteEndpoint(final String applicationArn, final String token) {
LOG.fine(String.format("Deleting endpoint by token for appArn=%s, token=%s", applicationArn, token));
Endpoint endpoint = findEndpointByToken(applicationArn, token);
if (endpoint != null) {
DeleteEndpointRequest der = new DeleteEndpointRequest().withEndpointArn(endpoint.getEndpointArn());
der.withGeneralProgressListener(new ProgressListener() {
public void progressChanged(ProgressEvent event) {
ProgressEventType eventType = event.getEventType();
System.out.println(eventType);
if (eventType.equals(ProgressEventType.CLIENT_REQUEST_SUCCESS_EVENT)) {
Endpoint exists = findEndpointByToken(applicationArn, token);
//This I expect this to be null but its only null after a few seconds
}
}
});
LOG.info(String.format("Deleted endpoint by token for appArn=%s, token=%s", applicationArn, token));
}
}
事件的輸出是
CLIENT_REQUEST_STARTED_EVENT
HTTP_REQUEST_STARTED_EVENT
HTTP_REQUEST_COMPLETED_EVENT
RESPONSE_CONTENT_LENGTH_EVENT
HTTP_RESPONSE_STARTED_EVENT
RESPONSE_BYTE_TRANSFER_EVENT
HTTP_RESPONSE_COMPLETED_EVENT
CLIENT_REQUEST_SUCCESS_EVENT
我看到你創建一個'DeleteEndpointRequest'對象,但是我沒有看到你將它傳遞給任何地方的'AmazonSNSClient.deleteEndpoint()'。我甚至沒有看到你在問題的代碼中的任何地方使用AmazonSNSClient。 –