Middle
Маънии лоиҳаи Celery чист?
sobes.tech AI
Ҷавоб аз AI
Celery як навбатии ғайриҳамкор барои вазифаҳо дар Python мебошад. Он имкон медиҳад, ки амалиётҳои дарозмуддат ё сарватталабро дар беруни ҷараёни асосии барнома иҷро кунад, ки ин ба такмил додани ҷавобгӯӣ ва масштабшавии он кӯмак мекунад.
Компонентҳои асосии лоиҳаи Celery чунинанд:
- Асинхронӣ: Вазифаҳо ба навбат фиристода мешаванд ва аз ҷониби коргарон дар пасзамана иҷро мешаванд, бидуни бастани ҷараёни асосӣ.
- Тараққӣ: Celery метавонад бо чанд коргар дар мошинҳои гуногун кор кунад ва борро тақсим кунад.
- Эътимоднокӣ: Гарант мекунад, ки вазифаҳо ҳатто дар ҳолати нокомӣ расонида ва иҷро мешаванд.
- Мониторинг: Воситаҳо барои пайгирии ҳолати вазифаҳо ва коргарон пешниҳод мекунад.
- Нақшабандӣ: Имкон медиҳад, ки вазифаҳо мувофиқи нақша иҷро шаванд (масалан, бо истифода аз 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 кӯмак мекунад, ки вазифаҳоро, ки метавонанд барномаи веб ё хидматро суст кунанд, дар пасзамана иҷро кунад, ки ин ба такмил додани иҷроиш ва таҷрибаи корбар кӯмак мекунад.