سلری (نرمافزار)
سلری (انگلیسی: Celery) (به معنی کرفس) یک صف وظیفه ناهمگام (انگلیسی: asynchronous task queue) منبع باز است که برپایه تبادل پیغام توزیع شده (انگلیسی: distributed message passing) بنا شدهاست. به رغم اینکه تمرکز سلری روی "عمل به صورت بلادرنگ" (انگلیسی: Real-time) است، از زمانبندی (انگلیسی: scheduling) نیز پشتیبانی میکند.[۱]
انتشار پایدار | 4.1.0
/ ۲۴ ژوئیه ۲۰۱۷ |
---|---|
مخزن | |
نوشتهشده با | پایتون |
پلتفرم | چندسکویی |
در دسترس به | پایتون |
نوع | میانافزار پیاممحور (انگلیسی: Message-Oriented Middleware) |
مجوز | پروانه بی اس دی |
وبگاه | celeryproject |
بررسی اجمالی
ویرایشواحدهای اجرایی که وظیفه (انگلیسی: 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.