| Termin | Definicja |
|---|---|
| priorytetyzacja wiadomości | Priorytetyzacja wiadomości to kolejność ich przetwarzania w kolejce wysyłkowej według ustalonych reguł. Reguły ustalania kolejności wiadomościPriorytetyzacja wiadomości oznacza przypisywanie komunikatom kolejności obsługi w kolejce wysyłkowej. Program lub usługa wysyłająca nie traktuje wtedy wszystkich wiadomości jako równoważnych, lecz porównuje ich właściwości z ustalonymi regułami. Takimi właściwościami mogą być między innymi ważność zadania, termin dostarczenia, czas dodania do kolejki, typ komunikatu, liczba wcześniejszych prób wysyłki albo informacja, czy wiadomość jest odpowiedzią na zdarzenie wymagające szybkiej reakcji. Najprostszym mechanizmem jest kolejka FIFO, czyli „first in, first out”, w której jako pierwsza przetwarzana jest najstarsza wiadomość. Priorytety zmieniają tę zasadę: komunikat oznaczony wyższą wartością może zostać obsłużony przed wcześniej dodanym komunikatem o niższym priorytecie. W praktycznej implementacji kolejka może korzystać z kopca priorytetowego, uporządkowanej tabeli, kilku oddzielnych kolejek albo indeksu sortowanego według pól zapisanych przy wiadomości. Sama etykieta „pilne” nie wystarcza, jeśli mechanizm wysyłkowy nie wykorzystuje jej podczas wyboru następnego elementu. Wpływ priorytetu na opóźnienia i przepustowośćGłównym celem priorytetyzacji jest skrócenie czasu oczekiwania komunikatów, dla których opóźnienie ma większe znaczenie. Przykładem może być wiadomość z kodem jednorazowym, powiadomienie o zakończeniu operacji albo alert generowany przez aplikację. Podniesienie takiego komunikatu w kolejce nie zwiększa samo w sobie szybkości połączenia internetowego ani limitu serwera odbiorcy. Zmienia jedynie kolejność wykorzystania dostępnych zasobów, takich jak proces wysyłający, połączenie sieciowe lub przydzielony kanał transmisji. Nieprawidłowo zaprojektowane priorytety mogą jednak pogorszyć działanie całego systemu. Jeżeli wiadomości wysokiego priorytetu napływają bez ograniczeń, komunikaty zwykłe mogą pozostawać w kolejce przez bardzo długi czas. To zjawisko nazywa się zagłodzeniem niższych priorytetów. Stosuje się dlatego limity, porządek mieszany albo mechanizm aging, w którym priorytet oczekującej wiadomości rośnie wraz z czasem przebywania w kolejce. Innym rozwiązaniem jest ważenie kolejek, na przykład przydzielenie określonej liczby wysyłek pilnych i jednej wysyłki zwykłej w powtarzającym się cyklu. Priorytety, ponowienia i kontrola kolejkiPriorytet powinien być analizowany razem ze stanem dostarczenia wiadomości. Komunikat, którego wysyłka zakończyła się błędem przejściowym, może trafić do kolejki ponowień z opóźnieniem określonym przez backoff. W takim przypadku natychmiastowe ponawianie blokowałoby zasoby i mogłoby nasilać problem po stronie odbiorcy. System powinien rozróżniać błędy chwilowe, takie jak niedostępność połączenia lub przekroczenie limitu, od błędów trwałych, na przykład niepoprawnego adresu albo odrzucenia formatu danych. Do kontroli działania potrzebne są co najmniej informacje o czasie dodania wiadomości, czasie rozpoczęcia przetwarzania, czasie zakończenia próby, liczbie ponowień, wyniku operacji i aktualnym priorytecie. Przydatne są również metryki długości kolejki, wieku najstarszej wiadomości oraz opóźnienia mierzonego od utworzenia do przekazania do wysyłki. Log powinien pozwalać ustalić, dlaczego konkretny komunikat został wybrany przed innym. Bez takich danych trudniej odróżnić błąd reguły priorytetów od przeciążenia procesu, awarii sieci, blokady zasobu lub ograniczenia narzuconego przez system odbiorczy. Sprawdzenie priorytetyzacji na komputerze użytkownikaPodczas diagnostyki aplikacji pocztowej, komunikatora lub programu synchronizującego warto najpierw sprawdzić, czy opisywana kolejka znajduje się lokalnie na komputerze, czy jest zarządzana przez zewnętrzną usługę. Następnie należy porównać kilka wiadomości o różnych priorytetach i obserwować ich kolejność, czas oczekiwania oraz reakcję na chwilową utratę połączenia. Test powinien uwzględniać także większą liczbę komunikatów, ponieważ przy jednej wiadomości nie da się ocenić, czy reguła rzeczywiście porządkuje kolejkę. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a w ramach diagnostyki oprogramowania można również sprawdzić, czy opóźnienia wysyłki wynikają z lokalnej konfiguracji, przeciążenia systemu, błędów aplikacji lub problemów z połączeniem sieciowym. Istotne jest rozdzielenie problemu z samym mechanizmem priorytetów od sytuacji, w której wiadomość została prawidłowo wybrana, lecz jej przekazanie zostało opóźnione przez limit, błąd transportu albo brak dostępnego zasobu. |