Cosa succede in asyncio.gather() se si verifica un errore in uno dei task? Come fare in modo che le eccezioni non vadano perse?
Python
import threading import time contatore = 0 def incrementa(): global contatore for _ in range(100): current = contatore time.sleep(0.000001) contatore = current + 1 thread1 = threading.Thread(target=incrementa) thread2 = threading.Thread(target=incrementa) thread1.start() thread2.start() thread1.join() thread2.join() print(f"Valore finale del contatore: {contatore}") 150-200
Parla dei livelli di isolamento delle transazioni in PostgreSQL e a cosa servono.
Come garantire l'idempotenza durante l'elaborazione di un batch di documenti da Kafka se il servizio può fallire a metà elaborazione?
Usi il linguaggio Go nel tuo sviluppo?
da fastapi import FastAPI, UploadFile, Response from fastapi.responses import StreamingResponse from pydantic import BaseModel, field_validator import base64 app = FastAPI() class PdfSchema(BaseModel): filename: str content_type: str data: str # base64 pdf 10мб @app.get("/data", response_model=PdfSchema) async def get_data(): return await service.get_big_data() @app.get("/download") async def download(): with open("big.pdf", "rb") as f: data = f.read() return Response(content=data, media_type="application/pdf") def heavy_pdf_parse(data: bytes) -> dict: # CPU-heavy логика return {"size": len(data)} @app.post("/parse") async def parse(file: UploadFile): content = await file.read() result = heavy_pdf_parse(content) return result @app.get("/users") async def get_users(): users = await repo.get_users() result = [] for u in users: posts = await repo.get_posts(u["id"]) result.append({"user": u, "posts": posts}) return result @app.get("/download-two") async def download_two(): def iterfile(): with open("big.pdf", "rb") as f: yield from f return StreamingResponse(iterfile(), media_type="application/pdf") class service: @staticmethod async def get_big_data(): return { "filename": "file.pdf", "content_type": "application/pdf", "data": base64.b64encode(b"fake").decode(), } class repo: @staticmethod async def get_users(): return [{"id": 1}, {"id": 2}] @staticmethod async def get_posts(user_id: int): return [{"id": 1, "user id": user_id}]
Parlami di ACID. Soprattutto dei livelli di isolamento delle transazioni. Quale livello hanno usato?
Come hai scoperto che qualcosa si rompeva o si degradava? A cosa guardavi?
Quanto tempo ci vuole per inserire N stringhe diverse di lunghezza K in un set?
Cosa sono EXPLAIN e EXPLAIN ANALYZE in PostgreSQL? Come eseguire DELETE/UPDATE senza applicare modifiche reali?
CREATE TABLE products ( id SERIAL PRIMARY KEY, category VARCHAR(100) NOT NULL, name VARCHAR(255) NOT NULL, description TEXT, price DECIMAL(10, 2) NOT NULL CHECK (price >= 0) );
Configurazione del sistema e formazione sulla sostituzione delle menzioni di Pinkman con targetAI
Cos'è un gestore di contesto, a cosa serve e come crearne uno?
Parla del processamento asincrono tramite Kafka: quali dati venivano trasmessi, quali chiavi venivano usate, come veniva garantito l'ordine di elaborazione?
Qual è la differenza tra asyncio.create_task() e await coroutine? Quando viene eseguita una task senza await?
Perché hai scelto l'indice GIN per la ricerca full-text? Perché non hai usato motori di ricerca come Elasticsearch?
Quali tipi di dati ci sono in Python? Raccontami dei mutabili e immutabili.
Trovare il simbolo che si presenta più frequentemente in sequenza nella stringa
Ci sono problemi con il trasferimento di oggetti tramite socket Unix tra processi? Come eliminare la serializzazione?
Nel tuo curriculum si dice che hai ottimizzato l'elaborazione degli ordini da 3 secondi a 50 millisecondi tramite l'outsourcing in Celery. Cosa esattamente rallentava, come hai deciso cosa esternalizzare e come hai misurato il risultato?