2013-01-11 35 views
6

Tôi muốn biết liệu có cách nào thanh lịch để đảm bảo rằng Hàng đợi luôn có các thư riêng biệt (không có gì liên quan đến Cửa sổ phát hiện trùng lặp hoặc bất kỳ khoảng thời gian nào cho vấn đề đó) không?Phát hiện trùng lặp trong Hàng đợi lưu trữ Azure

Tôi biết rằng Hàng đợi dịch vụ cung cấp các khái niệm phiên (như tôi đã đề cập Phát hiện trùng lặp hàng đợi dịch vụ sẽ không giúp tôi vì nó phụ thuộc vào khoảng thời gian), có thể phục vụ mục đích của tôi, nhưng tôi không muốn phụ thuộc vào dịch vụ Azure khác, chỉ vì tính năng này.

Xin cảm ơn,

+0

Để tham chiếu [Hàng đợi dịch vụ Azure và hàng đợi lưu trữ Azure] (https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus- hàng đợi-so-tương phản) –

Trả lời

10

Điều này không thể thực hiện được một cách đáng tin cậy.

Chỉ không có cơ chế nào có thể truy vấn hàng đợi Bộ nhớ và tìm hiểu xem thư có cùng nội dung đã có hoặc đã có ở đó chưa. Bạn có thể thử thực hiện logic của riêng bạn bằng cách sử dụng một số bảng lưu trữ, nhưng điều đó sẽ không đáng tin cậy - vì mục nhập vào bảng có thể thành công và sau đó nhập vào hàng đợi có thể không thành công - và bây giờ bạn có khả năng có dữ liệu xấu trong bảng.

Mã của bạn phải luôn luôn giả định rằng mã có thể truy xuất thư có cùng dữ liệu đã được xử lý. Điều này là do thư có thể trở lại hàng đợi khi công nhân đang xử lý sự cố hoặc mất quá nhiều thời gian.

+4

Thật vậy, bạn cần một quá trình idempotent –

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