Priorytety komunikatów

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

Priorytet komunikatu określany jest przez wypełnienie pola Priority w nagłówku komunikatu. Wartością tego pola jest liczba od 0 do 9, gdzie 0 oznacza najniższy priorytet, a 9 najwyższy. Parametr ten jest dość często wykorzystywany w systemach gdzie np. do tej samej kolejki trafiają komunikaty o rożnej charakterystyce obsługi. Jako przykład można ty przytoczyć aplikację wysyłającą dwa rodzaje komunikatów, jeden obsługiwany w adapterze dość długo, a drugi obsługiwany w ułamku sekundy. I teraz niech aplikacja wyśle w krótkim czasie na przemian kilkadziesiąt "długich" i kilkadziesiąt "krótkich" komunikatów. Jeśli adapter obierający będzie działał w jednym wątku lub będzie miał ich niewiele, to jeśli wysłane komunikaty będą miały taki sam priorytet, będą one obsłużone zgodnie z zasadą FIFO (pierwsze przyszło, pierwsze wyszło). Jeśli okaże się, że komunikaty krótkie są dla nas ważniejsze możemy ustawić im wyższy priorytet i wtedy w momencie wrzucenia takiego komunikatu do kolejki zostanie on dodany na koniec komunikatów o tym samym priorytecie a przed komunikatami o niższym priorytecie. W takiej sytuacji adapter odbierający pobierze komunikat "długi" tylko wtedy jeśli nie będzie w kolejce już komunikatów "krótkich" ponieważ będą miały one wyższy priorytet.


powrót
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz