Sobes.tech
Middle

Ի՞նչ է ծրագրի Celery էությունը։

sobes.tech AI

Պատասխան AI-ից

Celery-ը Python-ի համար ասինխրոն աշխատանքների հերթ է: Այն թույլ է տալիս իրականացնել երկարատև կամ ռեսուրսներ պահանջող գործողություններ ծրագրի հիմնական հոսքից դուրս, ինչը բարելավում է դրա արձագանքման և մասշտաբայնության հնարավորությունները:

Celery նախագծի հիմնական բաղադրիչներն են.

  1. Ասինխրոնություն: Աշխատանքները ուղարկվում են հերթ և կատարվում են ֆոնային աշխատողների կողմից, առանց հիմնական հոսքը խոչընդոտելու:
  2. Բաշխում: Celery-ը կարող է աշխատել մի քանի աշխատողների հետ տարբեր մեքենաներում՝ բեռը հավասարաչափ բաժանելով:
  3. Հավաստիություն: Գոյություն ունի երաշխիք՝ աշխատանքների առաքումը և կատարմանը նույնիսկ սխալների դեպքում:
  4. Հսկողություն: Գործիքներ, որոնք թույլ են տալիս հետևել աշխատանքների և աշխատողների վիճակին:
  5. Պլանավորում: Հնարավոր է աշխատանքներ կատարել ըստ ժամանակացույցի (օրինակ՝ 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-ը օգնում է կառավարել այն աշխատանքները, որոնք կարող են դանդաղեցնել վեբ հավելվածը կամ այլ ծառայությունը, կատարելով դրանք ֆոնային ռեժիմում, ինչը բարելավում է կատարողականությունը և օգտագործողի փորձը։