Asyncio

Tytuł: Asyncio
Kod: python-asyncio
Kategoria: Python
Forma: 30% wykłady / 70% ćwiczenia
Czas trwania: 3 dni
Odbiorcy: developerzy, architekci
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie z pisania asynchronicznego w Pythonie z wykorzystaniem asyncio.

Oparte o dwa studia przypadku - czat oraz giełdę.

Dzień 1: Wstęp, kiedy asyncio to właściwe podejście, projektowanie programów z użyciem asyncio,

Dzień 2: Wzorce w asynchronicznym programowaniu, używanie kodu niekompatybilnego z asyncio

Dzień 3: Testowanie, profilowanie i debuggowanie kodu w asyncio, przegląd podobnych rozwiązań

Wyróżniki szkolenia

  • Wzorce
  • Narzędzia
  • Zrozumienie pryncypiów

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Problem C10k ze studium przypadku - piszemy czat
    1. Podejście z użyciem puli procesów
    2. Podejście z użyciem puli wątków
    3. Współprogramy (ang. coroutines)
  2. Coroutines w praktyce
    1. Jawne oddanie kontroli async/await
    2. Dlaczego czasem asyncio.sleep(0) to dobry pomysł
    3. Czekanie na wiele zadań naraz - gather/wait
    4. Uruchamianie w tle przy pomocy Task / asyncio.ensure_future
  3. Pętla zdarzeń
    1. Jedyna zasada: Nie blokuj nigdy pętli zdarzeń!
    2. Zasada działania
    3. Alternatywne implementacje
      1. uvloop
    4. Monitorowanie ilości współprogramów
    5. Uruchamianie kilku pętli zdarzeń
  4. Kiedy asyncio to dobry wybór
    1. Problemy CPU-bound
    2. Problemy IO-bound
  5. Wzorce asynchronicznego przetwarzania w asyncio
    1. Locki
    2. Timeouty
    3. Wywołania zwrotne (ang. callbacks)
    4. Komunikacja przez współdzieloną pamięć i dlaczego to zły pomysł
    5. Komunikacja przez kolejki
    6. Workery
    7. Kontrola przepływu (ang. flow control), back-pressure
  6. Wbudowane elementy do szybszego budowanie aplikacji
    1. Osadzamy serwer HTTP w aplikacji czatu do serwowania statystyk
      1. Strumienie (ang. streams)
      2. Protokoły i Transporty
  7. Używanie niekompatybilnych bibliotek i kodu CPU-bound z asyncio
    1. asyncio.to_thread
    2. Executor
      1. oparty o wątki
      2. oparty o procesy
  8. Uruchamianie kodu CPU-bound w asyncio
    1. Przez Executor oparty o procesy
    2. Przez kolejkę zadań
  9. Testowanie kodu asyncio
    1. podstawa izolacji - tworzenie nowej pętli zdarzeń dla każdego testu
    2. pytest-asyncio
    3. AsyncMock
  10. Profilowanie i monitorowanie rozwiązań w asyncio
    1. cProfile
    2. yappi
    3. pyinstrument
    4. Użycie zewnętrznych usług klasy APM
  11. Debuggowanie rozwiązań w asyncio
    1. Włączanie trybu debuggowania
  12. Przegląd innych podejść do asynchronicznego przetwarzania w Pythonie
    1. Celery i podobne kolejki zadań
    2. Trio
    3. Twisted
    4. Gevent


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.