Middle
Ի՞նչ է ծրագրի Celery էությունը։
sobes.tech AI
Պատասխան AI-ից
Celery-ը Python-ի համար ասինխրոն աշխատանքների հերթ է: Այն թույլ է տալիս իրականացնել երկարատև կամ ռեսուրսներ պահանջող գործողություններ ծրագրի հիմնական հոսքից դուրս, ինչը բարելավում է դրա արձագանքման և մասշտաբայնության հնարավորությունները:
Celery նախագծի հիմնական բաղադրիչներն են.
- Ասինխրոնություն: Աշխատանքները ուղարկվում են հերթ և կատարվում են ֆոնային աշխատողների կողմից, առանց հիմնական հոսքը խոչընդոտելու:
- Բաշխում: Celery-ը կարող է աշխատել մի քանի աշխատողների հետ տարբեր մեքենաներում՝ բեռը հավասարաչափ բաժանելով:
- Հավաստիություն: Գոյություն ունի երաշխիք՝ աշխատանքների առաքումը և կատարմանը նույնիսկ սխալների դեպքում:
- Հսկողություն: Գործիքներ, որոնք թույլ են տալիս հետևել աշխատանքների և աշխատողների վիճակին:
- Պլանավորում: Հնարավոր է աշխատանքներ կատարել ըստ ժամանակացույցի (օրինակ՝ beat-ի միջոցով):
Հիմնական բաղադրիչները՝
- Հաղորդագրության բրոքեր: Ստանում է աշխատանքներ ծրագրից և փոխանցում է աշխատողներին: Պոպուլյար բրոքերներ՝ Redis, RabbitMQ:
- Աշխատողներ: Պրոցեսներ, որոնք ստանում են աշխատանքներ բրոքերից և կատարում:
- Celery հավելված: Կանֆիգուրացնում է Celery-ը, սահմանում աշխատանքները և կապը բրոքերի հետ:
Օրինակ՝ պարզ աշխատանք ստեղծելու և օգտագործելու:
// tasks.py
from celery import Celery
# Celery հավելվածի ինիցիալիզացիա
app = Celery('իմհավելված', broker='redis://localhost:6379/0')
@app.task
def add(x, y):
// Պարզ աշխատանք՝ երկու թվերի գումարում
return x + y
// main.py
from tasks import add
// Աշխատանքի ուղարկում հերթին
result = add.delay(4, 5)
print(f"Աշխատանքը ուղարկվեց: ID: {result.id}")
// Աշխատանքի արդյունքը կարելի է ստանալ ավելի ուշ, բայց դա բլոկավոր գործողություն է
print(f"Արդյունք: {result.get()}")
Այսպիսով՝ Celery-ը օգնում է կառավարել այն աշխատանքները, որոնք կարող են դանդաղեցնել վեբ հավելվածը կամ այլ ծառայությունը, կատարելով դրանք ֆոնային ռեժիմում, ինչը բարելավում է կատարողականությունը և օգտագործողի փորձը։