سلری (نرم‌افزار)

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو
سلری
Celery logo.png
انتشار پایدار
4.1.0
۲۴ ژوئیه ۲۰۱۷؛ ۲ سال پیش (۲۰۱۷-۰۷-24)
مخزن
نوشته‌شده توسطپایتون
بن‌سازه رایانشچندسکویی
در دسترس بهپایتون
گونهمیان‌افزار پیام‌محور (انگلیسی: Message-Oriented Middleware)
پروانهپروانه بی اس دی
وبگاه

سلری (انگلیسی: Celery) (به معنی کرفس) یک صف وظیفه ناهمگام (انگلیسی: asynchronous task queue) منبع باز است که برپایه تبادل پیغام توزیع شده (انگلیسی: distributed message passing) بنا شده‌است. به رغم اینکه تمرکز سلری روی "عمل به صورت بلادرنگ" (انگلیسی: Real-time) است، از زمانبندی (انگلیسی: scheduling) نیز پشتیبانی می‌کند.[۱]

بررسی اجمالی[ویرایش]

واحدهای اجرایی که وظیفه (انگلیسی: Task) خوانده می‌شوند به صورت همزمان روی یک یا چند گره کارگر (انگلیسی: worker node) با بهره‌گیری از چندپردازشی (انگلیسی: multiprocessing)، eventlet یا gevent اجرا می‌شوند. وظایف می‌تواند به صورت ناهمگام (انگلیسی: asynchronous) (در پس زمینه) یا همگام (انگلیسی: synchronous) (صبر تا آماده شدن شرط ادامه روند پردازش) اجرا شوند. سلری در سامانه‌های تولید (انگلیسی: production systems)، مثلاً در اینستاگرام، برای پردازش میلیون‌ها وظیفه در روز استفاده می‌شود.

تکنولوژی[ویرایش]

سلری با زبان برنامه‌نویسی پایتون نوشته شده‌است، اما پروتکل می‌تواند در هر زبانی پیاده‌سازی شود. سلری قادر است با سایر زبان‌ها از طریق وب هوک‌ها (انگلیسی: webhooks) ارتباط برقرار کند.[۲] به علاوه یک کلاینت برای زبان Ruby به نام RCelery،[۳] یک کلاینت PHP[۴] و یک کلاینت Node.js هم دارد.[۵]

کارگزار پیام (نام های دیگر: دلال پیام یا واسطه پیام) (انگلیسی: message broker) توصیه شده برای سلری RabbitMQ یا Redis است. به علاوه MongoDB, Beanstalk, Amazon SQS، CouchDB, IronMQ و پایگاه داده‌ها (با استفاده از SQLAlchemy یا Django ORM) به صورت آزمایشی پشتیبانی می‌شوند.[۶]

منابع[ویرایش]

  1. Celery: Distributed Task Queue
  2. "HTTP Callback Tasks (Webhooks) — Celery 3.1.23 documentation". docs.celeryproject.org. Archived from the original on 30 October 2016. Retrieved 2016-08-17.
  3. "leapfrogonline/rcelery". GitHub. Retrieved 2016-08-17.[پیوند مرده]
  4. "gjedeer/celery-php". GitHub. Retrieved 2016-08-17.
  5. "mher/node-celery". GitHub. Retrieved 2016-08-17.
  6. "Brokers — Celery 3.1.23 documentation". docs.celeryproject.org. Retrieved 2016-08-17.

پیوند به بیرون[ویرایش]