Async gebruiken voor gelijktijdig werk

Introductie tot FastAPI

Matt Eckerle

Software and Data Engineering Leader

Waarom async? Gelijktijdige burgers!

Seriële burgers

Klanten in de rij voor burgers die serieel worden bereid en geserveerd

Gelijktijdige burgers

Klanten in de rij voor burgers die gelijktijdig worden bereid en geserveerd

1 https://fastapi.tiangolo.com/async/
Introductie tot FastAPI

async in de praktijk

Seriële burgers

Een functie definiëren om burgers op te halen

# Dit is niet asynchroon
def get_sequential_burgers(number: int):
    # Doe iets serieels
    return burgers

De functie sequentieel aanroepen

burgers = get_burgers(2)

Gelijktijdige burgers

Een functie definiëren om burgers op te halen

async def get_burgers(number: int):
    # Doe iets asynchroon
    return burgers

De functie asynchroon aanroepen

burgers = await get_burgers(2)
Introductie tot FastAPI

FastAPI met async

Als we dit kunnen:

results = await some_library()

Gebruik dan async def:

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

Opmerking Gebruik await alleen binnen functies met async def

Introductie tot FastAPI

Wanneer gebruik je async

Gebruik async

Als onze app moet wachten op andere systemen

  • Externe API
  • Database

Voorbeelden

  • HTTP-verzoeken
  • Databases bevragen
  • Bestanden lezen

Gebruik geen async

CPU-intensieve taken

Voorbeelden

  • Audio- of beeldverwerking
  • Computer vision
  • Machine learning
  • Deep learning

Als we het niet zeker weten

Introductie tot FastAPI

Laten we oefenen!

Introductie tot FastAPI

Preparing Video For Download...