2017-02-09 56 views
1

我們用擴展功能包裝了現有的隊列。消息可以放在隊列中,我們可以看到消息正文存儲在S3上。SQS擴展 - 輸入收據句柄無效

然而,當消息被消耗,我們得到以下堆棧跟蹤:

com.amazonaws.services.sqs.model.ReceiptHandleIsInvalidException: The input receipt handle is invalid. (Service: AmazonSQS; Status Code: 404; Error Code: ReceiptHandleIsInvalid; Request ID: ba9421e9-a9d2-56ba-8e17-70ff7190f05a) 
         at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182) 
         at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770) 
         at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489) 
         at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310) 
         at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:2419) 
         at com.amazonaws.services.sqs.AmazonSQSClient.changeMessageVisibility(AmazonSQSClient.java:485) 
         at com.amazonaws.services.sqs.AmazonSQSClient.changeMessageVisibility(AmazonSQSClient.java:1692) 
         at com.amazon.sqs.javamessaging.AmazonSQSExtendedClientBase.changeMessageVisibility(AmazonSQSExtendedClientBase.java:1376) 

,當我們試圖改變能見度恰好。這不支持?

    sqsExtended.changeMessageVisibility(queueUrl, message.getReceiptHandle(), visibilityTimeout); 

回答

0

答案是,這並沒有得到執行,也不會嘗試通過調用方法時拋出一個異常,向您發出警告。似乎沒有理由不實施,查看源代碼,這將是直截了當的。

對於我們的情況,我們可以在這個參數的隊列默認值上進行中繼,而不是單獨設置每個參數。