2013-05-31 16 views
9

Wiem, że można ustawić wykrywanie duplikatów do pracy w określonym przedziale czasowym z kolejką niebieskiej magistrali usług. Czy jednak ktoś wie, czy działa on w oparciu o obiekty w kolejce?Jak działa funkcja duplikowania wykrywania w kolejkach magistrali usług Windows Azure?

Więc jeśli mam obiekt o identyfikatorze "SO_1", który zostanie umieszczony w kolejce i następnie zostanie zużyty, czy wykrywanie duplikatów jest nadal ważne?

Myślę, że o to pytam: czy jest to przedział czasowy i przedmiot, czy tylko ramy czasowe, które sprawiają, że kolejka decyduje o tym, co jest duplikatem?

Odpowiedz

15

http://blog.iquestgroup.com/en/windows-azure-service-bus-duplicate-detection/#.UaiXrd7frIU

Kiedy aktywować powielania, Windows Azure Service Bus zacznie zapisywać historię naszych wiadomości. Ten okres czasu można skonfigurować w zakresie od kilku minut do kilku dni. Jeśli zduplikowana wiadomość zostanie wysłana do magistrali usług, usługa automatycznie zignoruje komunikat.

+1

Wielkie dzięki - ten ostatni artykuł jest przydatny, ale nadal nie mówi, czy wykrywanie duplikatów sprawdza, czy element rzeczywiście znajduje się w kolejce, czy nie, czy nie zrzucić przedmiotu. Zgaduję, że nie - że po prostu trzyma listę duplikatów i sprawdza przeciwko nim i ignoruje zawartość kolejki. Pozostawię to pytanie otwarte, dopóki nie znajdę ostatecznej odpowiedzi. –

+0

Jest całkiem jasne, że 'Service Bus Windows Azure zacznie przechowywać historię naszych wiadomości. Ten okres czasu można skonfigurować w zakresie od kilku minut do kilku dni. " – astaykov

2

To właściwie tylko mnie, domyślnie wydaje się być włączone, a domyślny czas to 10 minut. "Klucz" to MessageId. W naszym przypadku w większości przypadków wykrywanie duplikatów jest w porządku, ale w niektórych przypadkach było to złe (zwłaszcza w przypadku zakresu 10-minutowego). Aby obejść ten problem, wprowadziliśmy „wyłącznik”:

// For this message, we need to prevent dups from being detected 
msg.MessageId = messageId + "_" + DateTime.Now.ToString("u"); 

Jeśli tylko chcesz, aby zapobiec „spamowanie” można rozważyć ustawienie okna wykrywania duplikatów do minimum (20 sekund). (Osobiście chciałbym zobaczyć próg tak niski jak 5 sekund).

Dopuszczalne zakresy prądu to od 20 sekund do 7 dni.

+2

FWIW - W sytuacjach wysokiej wydajności format" u "obejmuje tylko sekundy. Naprawiłem błąd, który nie był wystarczająco szczegółowy. Moją poprawką było użycie: DateTime.Now.ToString ("yyyy-M-ddThh: mm: ss.ff") zamiast tego. Jest to to samo co "u", ale dodaje sekundy do 1/100. – ProVega

Powiązane problemy