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

Как исполнишь фоновую задачу, если нет Celery

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

  1. Threading (для I/O-bound задач):
python
from threading import Thread
import time

def background_task():
    time.sleep(5)
    print("Task completed")

thread = Thread(target=background_task)
thread.start()
print("Main thread continues")
  1. Multiprocessing (для CPU-bound задач):
python
from multiprocessing import Process

def cpu_intensive_task():
    # тяжелые вычисления
    pass

process = Process(target=cpu_intensive_task)
process.start()
  1. Asyncio (для асинхронных операций):
python
import asyncio

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

asyncio.create_task(async_task())
  1. APScheduler (для периодических задач):
python
from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler()
scheduler.add_job(my_task, 'interval', minutes=30)
scheduler.start()

Для простых случаев хватит threading/multiprocessing. Для сложных сценариев (очереди, повторные попытки) лучше использовать RQ (Redis Queue) или Huey - легкие альтернативы Celery.

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

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

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

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