چه زمانی یک پروفایل مرورگر را قرنطینه کنیم
اجارهی (lease) پروفایل مرورگر، مشکل همزمانی (concurrency) را حل میکند. این قابلیت به شما میگوید که کدام ورکر (worker) مالک یک پروفایل است.
اما پس از شکست در اتوماسیون، با سوال جدیدی روبرو میشوید.
آیا استفاده مجدد از این پروفایل هنوز ایمن است؟
مالکیت و سلامت دو موضوع متفاوت هستند. یک ورکر میتواند اجاره را آزاد کند در حالی که پروفایل را در وضعیتی نامشخص رها کرده است. پروفایل ممکن است کوکیهای جدید، توکنهای تغییریافته یا فرمهای نیمهتمام داشته باشد.
اگر بلافاصله آن پروفایل را به ورکر بعدی بدهید، آنها نیز آسیب را به ارث میبرند.
به همین دلیل است که به یک وضعیت قرنطینه نیاز دارید.
قرنطینه یک وضعیت پس از شکست است. این یعنی شما به حساب کاربری، نشست (session) یا محیط (environment) اعتماد ندارید.
در اتوماسیون مرورگر، یک پروفایل چیزی فراتر از یک پوشه است. پروفایل شامل موارد زیر است: • کوکیها و ذخیرهسازی محلی (local storage) • وضعیتهای ورود و مجوزها • تنظیمات پروکسی و زبان • تاریخچه وظایف اخیر
اگر اجرای یک فرآیند پس از ورود (login) با شکست مواجه شود، ریسک بالا است. ممکن است با تغییر مسیرهای غیرمنتظره، درخواستهای تأیید هویت یا نشستهای منقضیشده روبرو شوید.
هر شکستی را قرنطینه نکنید. اگر شرایط زیر برقرار باشد، نیازی به آن ندارید:
- مرورگر هرگز اجرا نشده است
- پروفایل هرگز باز نشده است
- ورکر قبل از دریافت اجاره (lease) با شکست مواجه شده است
- اجرا فقط صفحات عمومی را لمس کرده است
- مرورگر به درستی بسته شده است
قرنطینه در موارد زیر حیاتی است:
- ورکر پس از باز کردن پروفایل کرش (crash) کرده است
- اجرا به یک ناحیه احراز هویت شده رسیده است
- وضعیت نشست یا کوکیها تغییر کرده است
- شکست در نزدیکی یک اقدام غیرایدمپوتنت (non-idempotent) مانند ارسال یک فرم رخ داده است
- پروکسی یا منطقه (region) در حین اجرا تغییر کرده است
- شواهد ناقص است
یک زمانبند (scheduler) ساده فقط بررسی میکند که آیا یک پروفایل قفل است یا باز. یک سیستم حرفهای از وضعیتهای بیشتری استفاده میکند: • در دسترس (Available): آماده برای کار • اجاره شده (Leased): در حال استفاده • دوره استراحت (Cooldown): نیاز به وقفه کوتاه دارد • قرنطینه شده (Quarantined): عدم قطعیت ناشی از شکست • نیاز به بررسی (Needs Review): نیازمند بازبینی انسانی • بازنشسته (Retired): دیگر استفاده نشود
یک پروفایل قرنطینه شده باید منجر به یک تصمیم شود. نباید صرفاً یک محل نگهداری فراموششده باشد. از آن برای ثبت شناسه پروفایل (profile ID)، آخرین URL، یک اسکرینشات و دلیل خطا استفاده کنید.
از برخورد با محیطهای حساب کاربریِ شکستخورده به عنوان ورودیهای پاک، خودداری کنید. یک lease از تداخلها (collisions) جلوگیری میکند. یک قرنطینه از زنجیرهای از شکستها جلوگیری میکند.
منبع: https://dev.to/web4browser/when-a-browser-profile-should-be-quarantined-after-automation-failure-gpk