Sobes.tech
Middle

Маънии лоиҳаи Celery чист?

sobes.tech AI

Ҷавоб аз AI

Celery як навбатии ғайриҳамкор барои вазифаҳо дар Python мебошад. Он имкон медиҳад, ки амалиётҳои дарозмуддат ё сарватталабро дар беруни ҷараёни асосии барнома иҷро кунад, ки ин ба такмил додани ҷавобгӯӣ ва масштабшавии он кӯмак мекунад.

Компонентҳои асосии лоиҳаи Celery чунинанд:

  1. Асинхронӣ: Вазифаҳо ба навбат фиристода мешаванд ва аз ҷониби коргарон дар пасзамана иҷро мешаванд, бидуни бастани ҷараёни асосӣ.
  2. Тараққӣ: Celery метавонад бо чанд коргар дар мошинҳои гуногун кор кунад ва борро тақсим кунад.
  3. Эътимоднокӣ: Гарант мекунад, ки вазифаҳо ҳатто дар ҳолати нокомӣ расонида ва иҷро мешаванд.
  4. Мониторинг: Воситаҳо барои пайгирии ҳолати вазифаҳо ва коргарон пешниҳод мекунад.
  5. Нақшабандӣ: Имкон медиҳад, ки вазифаҳо мувофиқи нақша иҷро шаванд (масалан, бо истифода аз beat).

Компонентҳои асосии Celery:

  • Мессенҷер брокери: Вазифаҳоро аз барнома қабул мекунад ва ба коргарон мегузарад. Брокерҳои машҳур: 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 кӯмак мекунад, ки вазифаҳоро, ки метавонанд барномаи веб ё хидматро суст кунанд, дар пасзамана иҷро кунад, ки ин ба такмил додани иҷроиш ва таҷрибаи корбар кӯмак мекунад.