2012-04-17 23 views
5

Tôi có một tập hợp nhỏ thư trong hàng đợi SQS, không bị xóa ngay cả khi yêu cầu xóa được gửi tới điểm cuối AWS trả lại bằng phản hồi 200. Các tin nhắn được xử lý bởi tiền phạt của tôi, và yêu cầu xóa cũng được gửi đi.Thông báo SQS Không xóa

Tôi đang sử dụng Java AWS SDK 1.3.6.

Có ai khác đã gặp sự cố này không?

+0

Các thư SQS này không bị xóa hoàn toàn hay chỉ mất vài giây? Bạn có thể cho chúng tôi thấy một số mã không? – Daan

+0

Xin chào Daan. Họ không bao giờ bị xóa, hoặc ít nhất họ đã không được trong vài giờ qua. Tôi có thể cho bạn thấy một số mã, nhưng nó chỉ là sử dụng thường xuyên của SDK AWS, do đó, không có nhiều điểm! –

+0

Hmm, tôi chưa từng gặp vấn đề này. Bạn có thể xóa chúng theo cách thủ công từ bảng điều khiển quản lý web AWS không? Điều này có ảnh hưởng đến tất cả các hàng đợi SQS của bạn hay chỉ là hàng đợi này? Nếu bạn chỉ có một, bạn có thể thử tạo một hàng đợi mới và xem liệu mã đó có hoạt động để xóa các thư khỏi hàng đợi đó không? Tôi không thấy bất kỳ vấn đề nào trên trang trạng thái dịch vụ AWS, vì vậy tôi không nghĩ rằng SQS đang hoạt động. Có thể được, mặc dù. – Daan

Trả lời

9

Rất tiếc - hàng đợi vô tình được đặt thành defaultVisibilityTimeout=0. Thay đổi điều này thành một giá trị tích cực đã khắc phục được sự cố.

này vẫn đặt ra một số câu hỏi mặc dù:

  1. Tại sao điều này chỉ ảnh hưởng đến một số tin nhắn? Có lẽ một số người mất nhiều thời gian hơn để xử lý?
  2. Tại sao Amazon trả lại 200 để xóa khi thư không bị xóa?
  3. Việc xóa không thành công vì nó nằm ngoài khung thời gian 0 giây (trong trường hợp này là mọi yêu cầu xóa thành công?) Hoặc họ không thành công vì người tiêu dùng khác đã chọn chúng theo thời gian yêu cầu xóa là nhận?
+0

Hmm. Đó là bí ẩn. Tôi không biết câu trả lời cho những câu hỏi này, nhưng tôi rất muốn nghe nếu có ai làm. Cảm ơn bạn đã chia sẻ giải pháp, nhân tiện! – Daan

+0

Tôi đang trải nghiệm chính xác điều này ngay bây giờ bằng cách sử dụng JavaScript SDK. Thời gian chờ của tôi cũng là 0, nhưng tăng nó không giúp được gì. Tôi cũng đang nhận được tin nhắn thành công, nhưng chỉ khi tôi xóa thông qua giao diện điều khiển AWS nó làm việc. Mọi cập nhật từ bất kỳ ai? –

+0

@Aan bạn có thể kiểm tra câu trả lời của tôi và xác nhận nó là trường hợp? Cảm ơn ! –

1

tài liệu chính thức (phiên bản 1.9.13)

QUAN TRỌNG: Có thể bạn sẽ nhận được một thông điệp ngay cả sau khi bạn đã xóa nó. Điều này có thể xảy ra trong những trường hợp hiếm hoi nếu một trong các máy chủ lưu trữ bản sao của tin nhắn không khả dụng khi bạn yêu cầu để xóa tin nhắn. Bản sao vẫn còn trên máy chủ và có thể được trả lại cho bạn một lần nữa khi có yêu cầu nhận tiếp theo. Bạn nên tạo hệ thống của mình thành idempotent để nhận được thông báo cụ thể không phải là vấn đề.

+0

Một giải pháp là mở rộng thời gian chờ hiển thị (lý tưởng theo chương trình). –

Các vấn đề liên quan