Programista .NET / C# — Trudniejsze sytuacje
Restart następuje w połowie tworzenia raportu
Trudniejsze sytuacje · Lekcja 5 z 6
Ponowienie bez podwójnego wyniku
Przypisz pracy stabilny identyfikator. Przed zapisem sprawdź, jaki skutek już istnieje i jakie warunki chronią przed równoczesnym wykonaniem. Oddziel powtarzalne niepowodzenie od chwilowego błędu.
- Co zrobić najpierwRozpoznaj zlecenie
- Co zrobić dalejSprawdź skutek
- Jak zakończyćPotwierdź wynik
Przykład z pracy
Po chwilowej niedostępności zlecenie wraca do obsługi bez powielenia pliku.
Ćwiczenie praktyczne
Ułóż reakcje na pierwszy przebieg, ponowienie i zapis zakończony.
Sprawdź się — opcjonalne pytanie
Co zabezpiecza przed podwójnym wynikiem?
- Wygenerowanie nowego losowego identyfikatora dla tego samego zlecenia
- Ukrycie pliku przed użytkownikiem
- Powiązanie skutku z identyfikatorem oraz spójny zapis decyzji
Pokaż odpowiedź i wyjaśnienie
Powiązanie skutku z identyfikatorem oraz spójny zapis decyzji. Stała tożsamość pracy pozwala rozpoznać poprzednie wykonanie.
Trudniejsze sytuacje · Lekcja 6 z 6
Obserwowanie i odbiór wydania
Obserwuj kolejkę, czas, błędy i skutek widoczny użytkownikowi. Przed wdrożeniem sprawdź przerwanie oraz ponowienie. W logach zachowaj kontekst bez zapisu zbędnych danych.
- Co zrobić najpierwOdtwórz warunki
- Co zrobić dalejSprawdź przebieg
- Jak zakończyćZapisz dowód
Przykład z pracy
Worker przechodzi odbiór po przerwaniu pracy i dokończeniu tego samego raportu.
Ćwiczenie praktyczne
Przygotuj kryteria odbioru dla aplikacji i zespołu utrzymania.
Restart następuje w połowie tworzenia raportu
Wyjaśnij decyzję
W trzech zdaniach przekaż wynik sprawy „Restart następuje w połowie tworzenia raportu”. Podaj, co potwierdziłeś, jakie działanie wybierasz i kiedy lub pod jakim warunkiem odbiorca powinien wykonać następny krok.
Omówienie decyzji i dopytanie
Przykładowe działanie. Odczytuję trwały stan, stosuję uzgodnione ponowienie i potwierdzam kompletność
Przywracasz pracę bez podwójnego efektu i pozostawiasz spójny wynik.
Pytanie z rozmowy o tym zawodzie. Jak potwierdzasz, że ponowienie jest bezpieczne?
Sprawdzam zapis stanu i czy przetworzenie tej samej pracy powtórnie nie dubluje wyniku ani efektów.
Poproś rozmówcę, żeby powtórzył, co już potwierdzono i od jakiej informacji zależy następny krok.
Sprawdź się — opcjonalne pytanie
Który dowód potwierdza bezpieczny restart?
- Jedno kompletne zakończenie tej samej sprawy po wznowieniu
- Samo uruchomienie procesu
- Zwiększenie liczby wpisów w logu
Pokaż odpowiedź i wyjaśnienie
Jedno kompletne zakończenie tej samej sprawy po wznowieniu. Odbiór łączy zachowanie techniczne z wynikiem użytkownika.
Zadanie końcowe
Wykorzystaj sposób pracy z przypadku „Restart następuje w połowie tworzenia raportu” w zadaniu rekrutacyjnym.
Raport trwa dłużej niż połączenie z użytkownikiem. Przeprojektuj przyjęcie zlecenia, stan pracy w tle i reakcję na restart usługi w połowie przetwarzania.
- Przyjmij żądanie
- Przetwórz zadanie
- Udostępnij stan
Pokaż kryteria wykonania
- Oddzielasz przyjęcie od wykonania.
- Rozpoznajesz potrzebę trwałego śladu i kontrolowanego ponowienia.
- Opisujesz anulowanie oraz sposób odzyskania wyniku.
Jak sprawdzić odpowiedź na głos?
Po co workerowi nowy zakres zależności?
Jeśli używa usług zakresowych, np. kontekstu danych, tworzę zakres odpowiadający zadaniu i zwalniam go po pracy.