hooman
6 ماه پیش توسط hooman مطرح شد
0 پاسخ

مدیریت زمان اجرای صف ها

سلام دوستان در یک پروژه لاراولی با استفاده از صف ها چنین مسله ای رو چطوری حل کنم؟

سناریویی فرضی این هست که داریم یک وب سایت را کرول میکنیم و دیتای آن را برمیداریم. و اگر تعداد ریکویست های ما مثلا از ۱۰ عدد در ساعت بیشتر شود سایت مورد نظر جوری طراحی شده که صفحه مورد نظر رو نشون نمیده و ریکپتچا نشون میده. و برای جلوگیری از ریکپچتا خوردن ما از تعدادی پروکسی داریم استفاده میکنیم. چطوری صف ها و جاب هامون رو کانفیگ کنیم که چک کنه اگر پروکسی شماره ۱ ده عدد ریکویستش رو طی یک ساعت اخیر زده تا یک ساعت آینده ازش استفاده نکنه (البته این قسمت رو میشه توی خود بدنه کلاس جاب نوشت که بره سراغ پروکسی شماره دو و الی آخر)
اما سوال اصلی من اینکه چطوری کانفیگ کنم که در این سناریو وقتی پروکسی هام همشون استفاده شده اند تا یک ساعت آینده هیچ جاب جدیدی اجرا نشه. (چون اگر اجرا بشه سایت مورد نظر از اون لحظه دوباره یک ساعت اون آی پی رو با کپتچا مواجه میکنه)

یک راه حل که به ذهنم رسیده اینکه داخل همون بدنه جاب زمان آخرین اجرا و استفاده از پروکسی هامون چک بشه و اگر شرایط مثلا تا ۵۵ دقیقه دیگه مساعد نبود availabe_at جاب رو آپدیت کنم که بعدا اجرا بشه. اما خوب خیلی جالب نیست از این لحاظ که برای تک تک مثلا ۱۰۰ جابی که در صف هستند این پروسس باید انجام بشه و همشون به زمان دیگه ای موکول بشن. اگر راهکاری باشه که از بیرون جاب ها بتونه مدیریتش کنه یا هر راه حل دیگه ای به ذهنتون برسه راهنمایی کنید ممنون میشم.


ثبت پرسش جدید

به همدیگه کمک کنیم

به hooman کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام