طراحی سایت, ساخت ربات تلگرام, آموزش php , سورس کد php ,سورس ربات تلگرام , سورس فروشگاه اینترنتی , آموزش طراحی وب

آموزش ساخت Queue در PHP – قسمت دوم


آموزش ساخت Queue در PHP

در قسمت اول آموزش ساخت Queue در PHP به طور کامل صف بندی و اهمیت آن در اپلیکشن ها را بررسی کردیم و حالا نیاز است که در قالب مثال در کد php صف بندی را پیاده سازی و استفاده کنیم.

مرور کلی

queue ها به شما این امکان را می دهند تا پردازش کارها و عملیات زمان بر همچون ارسال ایمیل را به تعویق انداخته و بدین وسیله سرعت پاسخ دهی به درخواست های ارسالی به اپلیکیشن تحت وب خود را به شکل چشم گیری افزایش دهید.

در آموزش ساخت Queue در PHP قصد داریم به شما نحوه صف بندی کارها در PHP و نحوه پیاده سازی یک مثال ساده از مدیریت پروسه ها با Queue در PHP را به شما نمایش بدیم.

این صف (Queue) ها می توانند در دیتابیس (MySQL ..) یا Redis (نوعی دیتابیس NoSQL که در رم ذخیره می شود.) ذخیره شوند .

 

پیاده سازی و ساخت Queue در PHP

از آنجایی که تعریف صف ها بسیار ساده است, تقریبا می توانید از هر محل ذخیره سازی داده ای استفاده کنید. حتی می توانید از یک آرایه php معمولی نیز بهره ببرید.

احتمالا اسکریپت بالا برای صف هایی که بسیار کوتاه هستند قابل استفاده باشد. که خب مطمیمنا متغییر $queue با رفرش صفحه از بین می رود و دیگر وجود نخواهد داشت !

بنابراین نیاز داریم که یک مخزن ذخیره اطلاعات مداوم و یک آداپتور PHP برای دسترسی به آن را داشته باشیم. از روی تجربه این محل ذخیره سازی می تواند:

  • یک فایل متن ساده ; یک فایل log باشد.
  • اینباکس Gmail , به فرض اگر نیاز به پردازش پیام های ایمیل را دارید که پشت سر هم می آیند, بنابراین نیازی به پر کردن صف هم نخواهید داشت.
  • راه حل های مخصوص صف بندی مثل Apache ActiveMQ یا Apache Kafka
  • یک وب سرویس بر پایه ذخیره سازی مثل iron.io
  • یک جدول دیتابیس که به نظر ما بهترین و ساده ترین راه است.

برای پیاده سازی صف هایمان, قصد داریم از توابع Semaphore استفاده کنیم.با این توابع دیگر نیاز نیست که همزمان عملیات مختلف را هندل کنیم. آنها در بالاسر, همه آنچه برای شروع نیاز داریم را مدیریت می کنند.

 

طراحی یک صف پیام

برای ساخت صف در PHP , نیاز داریم که منطق کارمان را به دو بخش تقسیم کنیم.

اول, یک سری پیام را به صف اضافه کنیم . دوم, نیاز داریم که با پروسه های خودمان پیام های داخل صف را بخوانیم.

ساخت Queue در PHP

راه اندازی یک صف پیام در PHP همانطور آسان است که یک شماره دلخواه را انتخاب می کنیم و سپس به یک هندلر از ریسورس های سیستم پیام دسترسی پیدا می کنیم.

برای شروع, یک فایل ثابت برای اینکار می سازیم :

کلاس Queue راه ساده ما برای دسترسی به یک صف است. ما یک ثابت با مقدار عددی دلخواه را به منظور شناسایی صف, تعریف کردیم و دو مقدار عددی دیگر نیز برای دسترسی به نوع پیام در صف مورد استفاده قرار خواهیم داد.

حتما بخوانید  دریافت اطلاعات فرم در php

راه اندازی سیستم پیام

حالا که کلاس کاربردی Queue خود را داریم, نیاز است که یک ساختار داده ساده برا هر یک از پیام هایمان را ایجاد کنیم. زمانی که پیام را به یک صف منتقل می کنیم, آبجکت ما به صورت سریال شده (serialized) در می آید. بنابراین می توایم هر آبجکتی را که نیاز داریم استفاده کنیم و هر متدی را که می خواهیم بر روی این آبجکت صدا بزنیم.

افزودن پیام به صف (Queue)

برای افزودن پیام به صف, نیاز است که یک متد دیگر به کلاس Queue اضافه کنیم که یک کلید را برای شناسای صف و یک آرایه دلخواه از داده ها را که قصد پاس دادن آن به کلاس Message خود داریم را, دریافت می کند.

کار با صف پیام ها

برای کار با صف پیام ها, نیاز داریم که یک کلاس Worker برای خواندن هر یک از پیام ها, پردازش عملیات و اجرای یک متد کامل با استفاده از آبجکت Message ای که خواندیم, ایجاد کنیم.

استفاده از صف بندی و فریمورک Slim

حالا که صف Queue خود را دایم و کلاس های Message و worker ما هم آماده است – نیاز است که ما فقط همه را یکجا قرار بدیم. برای این منظور از فریمورک Slim در اینجا استفاده می کنیم.

حتما بخوانید  بزرگنمایی تصویر با php و جاوااسکریپت

حالا ما یک اپلیکیشن REST داریم که می توانیم درخواست های POST را به /create ارسال کنیم. برای شروع کار Worker ما می توانیم یک تسک cron را برای فراخوانی کلاس Worker خودمان ایجاد کنیم.

خب همین قدر بود, می توانیم پیام ها خودمان را به صف اضافه کنیم. و ببنیم worker ما خروجی را با کلید مورد نظر برای ما برگشت می دهد.

جمع بندی

همانطور که دیدید, کار و ساخت Queue در php بسیار آسان است و برنامه نویسی را آسان تر می کند.

در مقالات بعدی یک مثال ساده و کاربردی دیگر از کار با صف بندی در PHP و ذخیره آن در دیتابیس را خواهیم دید و همچنین به شما نمایش خواهم داد چطور آیتم های مختلف را پردازش و کار را بین worker های دیگر تقسیم کنید.

همچنین یک پکیج معروف از فریمورک لاراول را به پروژه خود اضافه و کار را بی نهایت ساده و حرفه ای می کنیم.

 

امیدوارم از آموزش ساخت Queue در PHP نهایت استفاده را برده باشید .

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی
مدرس ، پنتستر ، توسعه دهنده اپلیکیشن های تحت وب ، عضو مرکز حامی نخبگان و از مدیران و اعضای رسمی تیم امنیتی آشیانه هستم . علاقه خاصی به زبان های تحت وب, امنیت شبکه و لینوکس دارم و هر روز تلاش می کنم به این حوزه ها مسلط تر شوم و اطلاعاتم را در وب به اشتراک بگذارم

دیدگاه کاربران

avatar

دانلود رایگان (هدیه ویژه)

کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

دانلود رایگان کتاب

سورس فروشگاهی دیجی کالا

بخش کاربران

هنوز عضو نیستید ؟ کلیک کنید

مجوزهای ما

logo-samandehi

دانلود کتاب

عضویت رایگان خبرنامه

تخفیف 70 هزار تومانی برای آپدیت جدید سورس فروشگاهی دیجی کالا - کد تخفیف : np70
ثانیه
دقیقه
ساعت
روز
خرید محصول