مشاهده توییت های دیگر

Avatar
سیاوش حسین زاده
@syavash_hzd ·
وردپرس تو ترافیک بالا مقصر کندی‌ها نیست، Redis Queue در وردپرس

وردپرس تو ترافیک بالا مقصر کندی‌ها نیست، Redis Queue در وردپرس

با توجه به اینکه توییت قبلی مربوط به WPMgr مورد استقبال قرار گرفت، یه پروژه دیگه که البته آزمایشیه و بیشتر جنبه بررسی و یادگیری معماری داره براتون آوردم.

وردپرس تو ترافیک بالا لزوما مقصر کندی نیست. خیلی وقت ها مشکل از موندن تسک های سنگین توی چرخه Sync Request-Response و تکیه روی WP-Cron عـه!

اکثر افراد وقتی سایت زیر لود کم میاره اولین کارشون ارتقای منابع سروره، در حالی که باتل نک واقعی می‌تونه بلاک شدن PHP-FPM سر تسک های زمانبری مثل Image Processing، ارسال ایمیل یا سینک API ها باشه.

پروژه Redis Queue اومده همین مسئله رو با بردن Job ها به Redis و پردازش اون‌ها توسط Worker حل کنه. Priority، Delayed Job، Retry، REST API، Rate Limit و حتی Job های آماده برای Image Processing و Email هم داره.

چیزی که برای من جالب بود خود معماری کدبیسه. تفکیک Queue Manager از Job Processor، Interface ها و مدل مشخص Lifecycle برای Job ها. حتی اگر پروژه آزمایشی باشه، خوندن ساختار و پترن‌های کدش برای یادگیری تفکیک بار کاری توی سیستم‌های سنتی شدیدا ارزشمنده.

مهارت واقعی اینجا اینه که بفهمی کجا باید I/O رو از Request اصلی جدا کنی و بار کاری رو Async کنی، نه اینکه برای هر مشکل Performance فقط CPU و RAM بیشتری بخری.

سورس پروژه: https://github.com/soderlind/redis-queue

دیدگاه خود را بنویسید

ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

خدمات حرفه‌ای تیم من!

با خدمات حرفه‌ای ما در طراحی سایت، پشتیبانی و بهینه‌سازی وردپرس، کسب‌وکار ها نگرانی فنی نخواهند داشت!