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

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

سلری
انتشار پایدار
4.1.0 / ۲۴ ژوئیه ۲۰۱۷؛ ۶ سال پیش (۲۰۱۷-24}})
مخزن
نوشته‌شده باپایتون
پلت‌فرمچندسکویی
در دسترس بهپایتون
نوعمیان‌افزار پیام‌محور (انگلیسی: Message-Oriented Middleware)
مجوزپروانه بی اس دی
وبگاهceleryproject.org

بررسی اجمالی

ویرایش

واحدهای اجرایی که وظیفه (انگلیسی: 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. Archived from the original on 29 January 2018. Retrieved 2016-08-17.

پیوند به بیرون

ویرایش