Встречается на собеседованиях • сегодня

Как делаешь фоновые задачи

В Python для фоновых задач можно использовать несколько подходов:

  1. Потоки (threading) - подходят для I/O-bound задач:
python
import threading

def background_task():
    print("Running in background")

thread = threading.Thread(target=background_task)
thread.start()
  1. Процессы (multiprocessing) - для CPU-bound задач:
python
from multiprocessing import Process

def cpu_intensive():
print("CPU work")

process = Process(target=cpu_intensive)
process.start()

text

3. **Асинхронность (asyncio)** - для I/O-bound с эффективным управлением:
```python
import asyncio

async def async_task():
    await asyncio.sleep(1)
    print("Async done")

asyncio.create_task(async_task())
  1. Очереди задач (Celery/RQ) - для сложных распределенных задач:
python
# Пример с Celery
@app.task
def send_email():
    # email logic

Выбор зависит от типа задачи:

  • I/O-bound → threading или asyncio
  • CPU-bound → multiprocessing
  • Долгие/распределенные → Celery/RQ

Важно учитывать GIL и состояние гонки в многопоточности. Для простых задач достаточно threading, для сложных - лучше Celery.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы