Sprawdź zawód
Otwarta lekcja · Programista .NET / C#

Zależności i ich cykl życia

Kompendium zawodu — pojęcia i zwroty

Pojęcia w pracy

Dependency injection
Przekazywanie obiektowi potrzebnych zależności przez ustaloną konfigurację.
Scope
Zakres, w którym określone zależności współdzielą cykl życia.
Worker
Usługa wykonująca pracę bez oczekiwania użytkownika na otwarte żądanie.
CancellationToken
Mechanizm przekazywania sygnału przerwania operacji.
Idempotencja
Własność pozwalająca powtórzyć operację bez powielenia jej skutku.

Zwroty w typowych sytuacjach

„Każdy przebieg w tle potrzebuje własnego zakresu zależności.”
Pilnujesz czasu życia usług.
„Użytkownik otrzyma identyfikator, a stan raportu odczyta oddzielnie.”
Rozdzielasz przyjęcie zlecenia od wykonania.
„Przy zatrzymaniu dokończymy bezpieczny etap albo zostawimy sprawę do ponowienia.”
Chronisz spójność pracy.

Rozróżnij zależności współdzielone oraz związane z zakresem pracy. Unikaj przechowywania obiektu zakresowego w usłudze długotrwałej. Dla zadania utwórz odpowiedni zakres.

  1. Rozpoznaj zależność
  2. Wyznacz zakres
  3. Zakończ przebieg

Przykład z pracy

Worker otwiera zakres danych na czas obsługi konkretnej sprawy.

Ćwiczenie praktyczne

Narysuj cykl pracy zależności dla dwóch kolejnych zleceń.

Restart następuje w połowie tworzenia raportu

Worker zapisał część danych. Po restarcie zlecenie jest nadal w kolejce, a użytkownik oczekuje jednego spójnego wyniku.

Pokaż przykładową reakcję

Odczytuję trwały stan, stosuję uzgodnione ponowienie i potwierdzam kompletność. Przywracasz pracę bez podwójnego efektu i pozostawiasz spójny wynik.

Sprawdź się — opcjonalne pytanie

Co ogranicza współdzielenie stanu między zadaniami?

  • Zachowanie jednego kontekstu dla wszystkich użytkowników
  • Wydłużenie nazwy serwisu
  • Osobny zakres potrzebnych zależności dla każdego przebiegu
Pokaż odpowiedź i wyjaśnienie

Osobny zakres potrzebnych zależności dla każdego przebiegu. Zakres porządkuje czas życia i zapobiega niechcianemu współdzieleniu.

Źródła do nauki Microsoft Learn — usługi i zadania w tle w ASP.NET Core

Przejdź do pełnej ścieżki

Na karcie zawodu znajdziesz także pytania i zadanie na rozmowę kwalifikacyjną.

Zobacz program kursu →