دوره آموزش سلری(celery) پایتون

# معرفی سلری در پایتون

Celery یک کتابخانه پایتون منبع باز است که برای اجرای وظایف به صورت ناهمزمان استفاده می شود. سلری یک صف وظیفه است که تسک‌ها را در خود نگه داری کرده و آنها را به شیوه ای مناسب بین کارگران توزیع می کند. در درجه اول بر روی عملیات بلادرنگ متمرکز است، اما از زمان بندی نیز پشتیبانی می کند. سلری بهره‌وری کاربر نهایی را به طرز شگفت انگیزی افزایش می دهد. Celery از کارگزاران پیام های مختلفی مانند RabbitMQ و Redis پشتیبانی می کند. Celery با استفاده از زبان python نوشته شده است اما امکان استفاده در دیگر زبان ها وجود دارد.

 

# چرا باید از سلری استفاده کنیم؟

معمولا زمانی که کاربر درخواستی را به سرور ارسال میکند انتظار پاسخ همزمان را دارد. اما اگر درخواست کاربر نیاز به پردازش سنگینی داشته باشد، امکان پاسخ همزمان مطلوب به کاربر وجود نخواهد داشت. همچنین در صورت افزایش بار کاری سرور ممکن است زمان پاسخ به کاربر طولانی شده و امکان ارسال درخواست های بعدی از کاربر سلب شود. به همین دلیل درخواست های زمانبر را با استفاده از brokerهایی مثل RabbitMq در یک صف ذخیره کرده و به نوبت پردازش شده و پاسخ مطلوب به کاربر ارسال میشود. Celery یک واسط بین کاربر و broker است که وظیفه صف بندی درخواست ها به ساده ترین شکل ممکن را دارند.

 

  • استفاده و نگهداری از سلری آسان است و نیازی به فایل های پیکربندی ندارد.
  • در صورت قطع یا شکست اتصال، کارگران و کلاینت‌ها به‌طور خودکار دوباره برای اجرای وظایف خود تلاش می‌کنند.
  • یک پراسس Celery می‌تواند میلیون‌ها کار را در دقیقه با تأخیر رفت و برگشت زیر میلی‌ثانیه پردازش کند.
  • تقریباً هر قسمت از Celery را می توان به تنهایی گسترش داد یا از آن استفاده کرد، مانند سریالایزرها، ورود به سیستم، زمان بندی ها، مصرف کنندگان، تولید کنندگان و موارد دیگر.

 

# آیا یادگیری سلری پیش نیاز دارد؟

از آنجایی که ابزار سلری با پایتون نوشته شده است، داشتن دانش اولیه از پایتون مورد نیاز است. در صورت آشنایی نداشتن با پایتون میتوانید دوره آموزش رایگان پایتون را تماشا کنید. همچنین سلری برای کارکردن و ذخیره درخواست ها نیاز به یک broker دارد. در این دوره ما از RabbitMq به عنوان broker استفاده خواهیم کرد. قبل از شروع این دوره حتما باید با یک broker آشنا باشید. درصورتی که با هیچ بروکری آشنایی ندارید،‌ میتوانید دوره آموزش rabbitmq را مشاهده کنید.

 

مطالب این دوره به شکل کامل آپدیت شده است.



0

intro

9:46

رایگان

1

application

11:30

رایگان

2

tasks

16:17

3

bind

17:0

4

flower

11:10

5

keeping results

11:43

6

config

17:5

7

signatures

15:25

8

primitives

14:14

9

signals

10:48

10

periodic tasks

13:43

11

routing tasks

18:5

12

pool

14:47

13

serializer

12:54

دوره های پیشنهادی

دوره آموزش gitlab cicd
دوره آموزش gitlab cicd
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش امنیت در وب
دوره آموزش امنیت در وب
تکمیل ضبط
امیرحسین بیگدلو
دوره اول آموزش فلسک(Flask)
دوره اول آموزش فلسک(Flask)
تکمیل ضبط
امیرحسین بیگدلو

ارسال نظر


امیررضا

1 ماه قبل پاسخ به نظر

سلام
وقتی از celery در جنگو استفاده میکنیم ، هم producer هم consumer، در واقع اینجوریه که پشت صحنه جنگو با کمک سلری میره تسک ها رو میزاره در message broker، بعد دوباره خود جنگو با کمک celery ، میره برشون میداره و تسک ها رو انجام میده ؟

ارسال نظر



امیرحسین بیگدلو

1 ماه قبل

سلام
بله، همه کارها رو خود جنگو انجام میده

حسین سرگلی

2 ماه قبل پاسخ به نظر

سلام مهندس بیگدلو
وققتون بخیر. من دوره تون رو دیدم و تشکر میکنم بابتش، اگه راهنماییم کنین ممنون میشم
من یه صف از نتایج یه سری تسک درست کردم و میخوام در فایل دیگر نتایج را از این صف بردارم و پردازش کنم. ولی روش اینکه نتایج صف را بارگزاری کنم در فایلم رو نمیدونم و با کلی سرچ هم به نتیجه ای جز اینسپکت نرسیدماگه راهنمایی ای دارین ممنونتون میشم، تشکر

ارسال نظر



امیرحسین بیگدلو

2 ماه قبل

سلام
شما میتونید از AsyncResult استفاده کنید. کافیه id تسک رو بهش ارسال کنید. این لینک رو ببینید:
https://docs.celeryq.dev/en/stable/reference/celery.result.html

Majid

2 ماه قبل پاسخ به نظر

سلام یه سوالی دارم هم توی این دوره دیدم و هم جاهای دیگه چرا بعضی وقتا اون کلاس یا متودی که میخوایم بنویسیم اینتلیسنس اونو تشخیص نمیده و اتو کامپلیت نداره مثلا مثل دوره rabbitmq مثل basic_publish یا queue_declare و....

ارسال نظر



امیرحسین بیگدلو

2 ماه قبل

سلام
احتمالا ide نتونسته به پکیج‌ها دسترسی پیدا کنه

Ehsan

2 ماه قبل پاسخ به نظر

سلام امیر
تسک ها وقتی میرن توی صف دونه دونه و پشت سر هم اجرا میشن یعنی زمانی که اولی تموم نشده دومی شروع نمیشه
امکانی وجود داره که مثلا تسک ها با هم شروع به کار کنن یا مثلا تسک ۵ ام کارش زود تر از تسک اول تموم بشه و بخوایم نتیجه اونو بگیریمش؟

ارسال نظر



امیرحسین بیگدلو

2 ماه قبل

سلام
تعداد workerها رو بیشتر کن.

ناشناس

3 ماه قبل پاسخ به نظر

سلام امیر واسه همچین دوره هایی که لینوکس میخوان virtual box کارمونو راه میندازه یا کلا باید سیستمو لینوکسی کنیم؟

ارسال نظر



امیرحسین بیگدلو

3 ماه قبل

سلام
میتونید از ویرچوال باکس یا داکر استفاده کنید

آرش

6 ماه قبل پاسخ به نظر

سلام و درود
ببخشید این دوره celeryرو که به اتمام رسیده اگه بخواییم خریداری کنیم چطور انجام میشه؟ تشکر

ارسال نظر



امیرحسین بیگدلو

6 ماه قبل

سلام
در سایت ثبت نام کنیدو وارد پروفایلتون بشید. اونجا دکمه عضویت ویژه هست

جواد

7 ماه قبل پاسخ به نظر

سلام و درود
امیر من دوره ی قدیمی سلریتو دارم
همونو نگاه کنم اوکیه ؟ یا اشتراک بگیرم اینو نگاه کنم ؟ من جونیورم هنوز استخدام نشدم میخوام سلری یاد بگیرم . قطعا در آینده دوره ی جدیدتو نگاه میکنم . فعلا همون قدیمی رو نگاه کنم حله ؟

ارسال نظر



امیرحسین بیگدلو

7 ماه قبل

سلام
توی این دوره آپدیت مطالب جدید و مفیدی رو اضافه کردم. اگر ببینی قطعا برات مفید خواهد بود

nobody

9 ماه قبل پاسخ به نظر

اپدیت جالب و خوبی بود

ارسال نظر



danyal

9 ماه قبل پاسخ به نظر

سلام اقای بیگدلو میخاستم بدونم این دوره کلا چند قسمت میشه

ارسال نظر



امیرحسین بیگدلو

9 ماه قبل

سلام احتمالا سیزده قسمت بشه

وحید

11 ماه قبل پاسخ به نظر

سلام. ببخشید تسک های دوره ای و تسک های زمان بندی شده . این دو مبحث خیلی مهمند. آیا تو این دوره گفته میشه؟

ارسال نظر



امیرحسین بیگدلو

11 ماه قبل

سلام
توی دوره فروشگاه جنگو توضیح دادم:
https://www.mongard.ir/courses/django-shop/episode/456/django-shop-celery-beat/

عرفان

1 سال قبل پاسخ به نظر

سلام
دوره ی سلری تموم شده؟ و اگه تموم نشده چند قسمت دیگه مونده و چه زمانی تمومش میکنین؟
سوال دوم اینکه تو دوره ی جنگو فروشگاه از سلری استفاده میکنید میخواستم بدونم الان مطالب این دوره برای اون دوره کافی هست یا ناقصه؟؟

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
بله، این دوره فعلا تموم شده. این دوره برای دوره فروشگاه جنگو کافیه.

mike

1 سال قبل پاسخ به نظر

بین سلری و جنگو چنلز بهتره از کدوم استفاده کرد ؟

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
این دو تا برای هدف های جداگانه‌ای استفاده میشن و درست نیست مقایسشون کنید. اما به هر حال سلری استفاده بیشتری داره

پریسا

1 سال قبل پاسخ به نظر

سلام و خسته نباشید .
تسکی که توی صف انجام میشه ، فراخوانی یک API هست که tps رو برای یوزر های مختلف متفاوت ست کرده و من میخوام با signature بتونم درخواست های مربوط به هر یوزر رو بصورت داینامیک هندل کنم . راهی هست که بشه صف ها رو بصورت داینامیک بر اساس سیگنیچر های مختلف ایجاد کرد؟

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
خود سلری همچین ویژگی نداره باید مدیریت صف ها و تسک ها رو خودتون انجام بدین.

عباس

1 سال قبل پاسخ به نظر

سلام وقت بخیر ممنون میشم کامل کردن این دوره رو در الویت قرار بدید

ارسال نظر



محمد

1 سال قبل پاسخ به نظر

سلام سلری برای جنگو از داخل دوره ها حذف شده؟

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
بله اما مطالب اون دوره رو داخل دوره فروشگاه قرار دادم

مهران

1 سال قبل پاسخ به نظر

با سلام... ضمن تشکر از آموزشهای خیلی خوبتون . دو تا پیشنهاد داشتم .... اگر محبت کنید دوره هایی که تمام شدند رو با علامتی در همون عنوان دوره(صفحه اول) مشخص کنید و تفکیک صورت بگیره خیلی بهتره ضمن اینکه اگر محبت کنید کلید سرچ دوره ها رو هم بذارید ممنون میشم.

ارسال نظر



سجاد جلالی

1 سال قبل پاسخ به نظر

سلام خسته نباشید.
دوره celery تموم شده ویدیو هاش؟
اگه تموم شده چند تا ویدیو مونده؟
در ضمن ویدیو‌هاتون به شدت عالین 3>

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
تموم نشده. حداقل ده تا ویدیو دیگه مونده ولی وقت نمیکنم براش ویدیو ضبط کنم



مونگارد