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:
- 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.
- Elosztottság: A Celery több munkással működhet különböző gépeken, elosztva a terhelést.
- 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.
- Monitorozás: Eszközöket kínál a feladatok és munkások állapotának nyomon követésére.
- Ü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.