Sobes.tech
Middle

Mi a Celery projekt lényege?

sobes.tech MI

Válasz az MI-től

A Celery egy aszinkron feladatok sorozata Pythonhoz. Lehetővé teszi hosszú vagy erőforrás-igényes műveletek végrehajtását az alkalmazás fő szálán kívül, ezáltal javítva a reakcióképességet és a skálázhatóságot.

A Celery projekt fő összetevői a következők:

  1. Aszinkronitás: A feladatokat sorba helyezzük, és háttérmunkások végzik el, anélkül, hogy blokkolnák a fő szálat.
  2. Elosztottság: A Celery több munkással működhet különböző gépeken, elosztva a terhelést.
  3. Megbízhatóság: Biztosítja a feladatok kézbesítését és végrehajtását még hibák esetén is.
  4. Monitorozás: Eszközöket kínál a feladatok és munkások állapotának nyomon követésére.
  5. Ütemezés: Lehetővé teszi feladatok időzített végrehajtását (pl. beat segítségével).

A Celery fő komponensei:

  • Üzenetközvetítő (Broker): Fogadja a feladatokat az alkalmazástól, és továbbítja azokat a munkásoknak. Népszerű broker: Redis, RabbitMQ.
  • Munkások: Folyamatok, amelyek felveszik a feladatokat a brokerből, és végrehajtják azokat.
  • Celery alkalmazás: Konfigurálja a Celery-t, meghatározza a feladatokat és a kapcsolatot a brokerrel.

Egyszerű feladat létrehozásának és használatának példája:

// tasks.py
from celery import Celery

# Celery alkalmazás inicializálása
app = Celery('sajat_app', broker='redis://localhost:6379/0')

@app.task
def add(x, y):
    // Egyszerű feladat - két szám összeadása
    return x + y
// main.py
from tasks import add

// Feladat küldése a sorba
result = add.delay(4, 5)

print(f"Feladat elküldve. Azonosító: {result.id}")
// A feladat eredményét később lehet lekérni, de ez blokkoló művelet
print(f"Eredmény: {result.get()}")

Így a Celery segít kezelni azokat a feladatokat, amelyek lassíthatják a webalkalmazást vagy más szolgáltatást, azokat háttérben végrehajtva, ezáltal javítva a teljesítményt és a felhasználói élményt.