سلری (نرمافزار)
![]() | |
انتشار پایدار | 4.1.0
/ ۲۴ ژوئیه ۲۰۱۷ |
---|---|
مخزن | |
نوشتهشده با | پایتون |
پلتفرم | چندسکویی |
در دسترس به | پایتون |
نوع | میانافزار پیاممحور (انگلیسی: 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) به صورت آزمایشی پشتیبانی میشوند.[۶]
منابع
[ویرایش]- ↑ «Celery: Distributed Task Queue». بایگانیشده از اصلی در ۱۳ ژوئن ۲۰۱۹. دریافتشده در ۱۰ مه ۲۰۱۸.
- ↑ "HTTP Callback Tasks (Webhooks) — Celery 3.1.23 documentation". docs.celeryproject.org. Archived from the original on 30 October 2016. Retrieved 2016-08-17.
- ↑ "leapfrogonline/rcelery". GitHub. Retrieved 2016-08-17.[پیوند مرده]
- ↑ "gjedeer/celery-php". GitHub. Retrieved 2016-08-17.
- ↑ "mher/node-celery". GitHub. Retrieved 2016-08-17.
- ↑ "Brokers — Celery 3.1.23 documentation". docs.celeryproject.org. Archived from the original on 29 January 2018. Retrieved 2016-08-17.