سیستم لاگ عملیات کاربر در PHP
سلام
برای یک وب سایت که بازید نسبتا بالایی خواهد داشت می خواهم سیستم لاگ عملیات کاربر (ورود - ارسال مطلب و ...) درست کنم
میشه مستقیم و به صورت ساده اطلاعات رو توی دیتا بیس ذخیره کرد اما ترسم از اینه که با بالا رفتن بازید سایت این سیستم لاگ موجب کند شدن سایت و معطل شدن کاربر بشه
آیا راهی وجود داره که لاگ ها با کمترین فشار به سرور ذخیره بشه و کاربران معطل ذخیره اطلاعات لاگ نشوند؟
1 پاسخ
با سلام.
جهت انجام کارهای این چنینی مثل لاگ ، ارسال اس ام اس ، ارسال ایمیل و عملیاتی از این دست که عمدتا به یک منبع خارجی وابستگی داره و میتونه باعث کند شدن روند پاسخدهی به کاربر بشه،
بهتر هست که از یک Message Broker استفاده کنید (مثلا RabbitMQ) ، و عملیات مربوطه رو به یک صف منتقل کنید و اون طرف یک سری Consumer مختص هر عملیات (مثلا SmsConsumer ، EmailConsumer و...) داشته باشید که با دریافت پیام مربوطه عملیات مخصوص به اون صف رو اجرایی کنه . مثلا اگر در صف SmsQueue پیامی درج شد توسط Producer ، مصرف کننده ی SmsConsumer ، فعال بشه و عملیات ارسال SMS رو انجام بده بدون اینکه وقفه ای در روند پاسخدهی به درخواست کاربر ایجاد بشه .