Dzierżawa zadania

Przydzielanie pracy na określony czas, który wykonawca musi odnawiać — jeśli przestanie, zadanie wraca do kolejki. Chroni przed zadaniami zajętymi przez wykonawców, którzy przestali istnieć, i przed cichym zatrzymaniem grafu.

W Polsce nazywane też:

dzierżawa zadaniaatomowe zajęcie zadaniablokada wykonaniarezerwacja zadania

Mechanizm stary jak systemy kolejkowe, który przy grafach agentowych wraca w nowym przebraniu — i bez którego graf potrafi zatrzymać się w sposób niewidoczny dla żadnego monitoringu opartego na błędach.

Czym jest dzierżawa zadania

Sposób przydzielania pracy, w którym wykonawca nie zajmuje zadania na stałe, tylko na określony czas, i musi ten czas odnawiać. Jeśli przestanie, zadanie wraca do kolejki i może je podjąć ktoś inny.

Problem, który rozwiązuje

Wykonawca zajmuje zadanie i przestaje istnieć — pada proces, kończy się kontener, zrywa połączenie. Zadanie ma status „w toku” i nikt go nie zwolni. Reszta grafu czeka na wynik, który nigdy nie przyjdzie.

Żaden monitoring oparty na błędach tego nie zgłosi, bo błędu nie było. Graf stoi i wygląda, jakby pracował.

Powiązany mechanizm: atomowe zajęcie

Osobna sprawa, choć zwykle wdrażana razem. Wykonawca nie „bierze zadania”, tylko próbuje je zająć w jednej operacji, która albo się powiedzie, albo nie, bez stanu pośredniego. Bez tego dwóch wykonawców może sięgnąć po to samo w tej samej chwili i wykonać je dwukrotnie.

Rozstrzygnięcie musi być po stronie magazynu stanu, nie po stronie agenta. Agent poproszony o sprawdzenie, czy ktoś już to wziął, sprawdzi — a między sprawdzeniem a zajęciem zmieści się drugi agent.

Kiedy jest potrzebna

W przepływie jednościeżkowym problem zwykle nie istnieje, bo nie ma dwóch chętnych. Zaczyna istnieć w momencie, gdy niezależnych wykonawców jest dwóch — i wtedy albo masz mechanizm, albo budujesz go sam.