Eşzamanlı işler için async kullanma

FastAPI'ye Giriş

Matt Eckerle

Software and Data Engineering Leader

Neden async? Eşzamanlı Burgerler!

Sıralı Burgerler

Seri şekilde hazırlanan ve servis edilen burgerler için sıradaki müşteriler

Eşzamanlı Burgerler

Eşzamanlı hazırlanan ve servis edilen burgerler için sıradaki müşteriler

1 https://fastapi.tiangolo.com/async/
FastAPI'ye Giriş

Pratikte async

Sıralı Burgerler

Burger alma fonksiyonu tanımlama

# Bu asenkron değildir
def get_sequential_burgers(number: int):
    # Bazı sıralı işler yap
    return burgers

Fonksiyonu sıralı çağırma

burgers = get_burgers(2)

Eşzamanlı Burgerler

Burger alma fonksiyonu tanımlama

async def get_burgers(number: int):
    # Bazı asenkron işler yap
    return burgers

Fonksiyonu asenkron çağırma

burgers = await get_burgers(2)
FastAPI'ye Giriş

FastAPI ile async

Eğer yapabiliyorsak:

results = await some_library()

O zaman async def kullanın:

@app.get('/')
async def read_results():
    results = await some_library()
    return results

Not await yalnızca async def ile oluşturulan fonksiyonların içinde kullanılmalıdır

FastAPI'ye Giriş

Ne zaman async kullanmalı

Async kullanın

Uygulama diğer sistemlerin yanıtını bekliyorsa

  • Harici API
  • Veritabanı

Örnekler

  • HTTP istekleri
  • Veritabanı sorguları
  • Dosya okuma

Async kullanmayın

CPU-ağır işler

Örnekler

  • Ses veya görüntü işleme
  • Bilgisayarlı görü
  • Makine Öğrenimi
  • Derin Öğrenme

Emin değilsek

FastAPI'ye Giriş

Hadi pratik yapalım!

FastAPI'ye Giriş

Preparing Video For Download...