Heartbeat API چیست، چگونه آن را غیرفعال و یا مدیریت کنیم؟

Heartbeat API چیست، چگونه آن را غیرفعال و یا مدیریت کنیم؟

وردپرس در سال 2013 ویژگی Heartbeat API یا ضربان قلب وردپرس را معرفی کرد، WordPress Heartbeat به مرورگر شما این امکان را می‌دهد تا به صورت خودکار با سرور ارتباط برقرار کند اما این ویژگی ممکن است برای همه سایت‌ها مناسب نباشد مخصوصا اگر از سرویس های اشتراکی استفاده می کنید. ضربان قلب وردپرس ممکن است استفاده از منابع سرور و CPU را تا حد زیادی افزایش دهد پس نتیجه می گیریم که Heartbeat API معمولاً باید غیرفعال و یا محدود شود چرا یکی از مهمترین موارد در افزایش منابع سرور است.

Heartbeat API چیست

WordPress Heartbeat API یا ضربان قلب وردپرس یک پروتکل ارتباطی با استفاده از تماس های AJAX بین مرورگر و سرور ارائه می دهد. همانطور که از نام آن پیداست، API پس از دریافت داده، پالس‌های پیوسته ارسال می‌کند و رویدادها (یا تماس‌های برگشتی) را راه‌اندازی می‌کند. این تابع به شما کمک می کند تا تمام داده ها را بین سرور و داشبورد وردپرس همگام سازی کنید.

در ابتدا ایده پشت API ضربان قلب کاملا مفید است. به عنوان مثال، هنگامی که یک نوشته یا برگه را از ایجاد یا ویرایش می‌کنید، عملکردی برای ذخیره خودکار پست به صورت دوره‌ای ارائه می‌دهد که موجب ایجاد نسخه های ذخیره خودکار مطالب وردپرس می شود. و یا اینکه اعلان های یک افزونه را در لحظه به شما نشان می دهد.

فرض کنید سایت شما دارای چندین نویسنده است، Heartbeat API یک عملکرد قفل کردن پست دارد تا از ویرایش پستی که توسط کاربر دیگری روی آن کار می‌کند جلوگیری کند. همچنین در صورتی که از یک افزونه فروشگاهی استفاده می کنید، این API به نمایش لحظه ای فروش‌هایی که در سایت شما انجام می گیرد کمک می کند.

محدود کردن یا غیرفعال کردن Heartbeat API

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

چرا این ویژگی را محدود کنیم

در حالی که داشتن عملکرد ذخیره خودکار و ویژگی‌های اعلان داده در لحظه مفید است، اما در یک موقعیت خاص می‌تواند مضر باشد. Heartbeat API درخواست های AJAX (POST requests) را با استفاده از فایل admin-ajax.php ارسال می کند. این می تواند باعث ارسال تعداد زیادی درخواست به سرور میزبان شود که منجر به استفاده زیاد از CPU می شود و هر درخواستی که فایل PHP را اجرا می کند برابر با زمان CPU روی سرور است.

همانطور که قبلاً نیز اشاره کردیم، اگر از هاست اشتراکی استفاده می کنید Heartbeat API می تواند مشکل ساز باشد و با عبور از حد مجاز استفاده از منابع و CPU در نهایت منجر به تعلیق حساب شود.

چند نکته قبل از محدود و یا غیر فعال کردن

توجه کنید که با غیرفعال کردن Heartbeat API ویژگی دیگر نمی توانید از قابلیت Revisions (ذخیره خودکار وردپرس) و یا پیش‌نویس خودکار وردپرس استفاده کنید، بنا بر این پس از غیر فعال سازی اگر هنگام انتشار یک مطلب آن را ذخیره نکرده باشید و با مشکلاتی چون رفتن برق مواجه شوید تمامی اطلاعات نوشته در حال انتشار از بین خواهد رفت همچنین شما دیگر به ویرایش های قبلی دسترسی نخواهید داشت.

اگر افزونه‌های شما از این ویژگی استفاده می کنند، غیر فعال کردن Heartbeat API موجب اختلال در عملکرد افزونه شده و اعلان‌ها و ویژگی‌های اطلاعاتی در لحظه در سایت نمایش داده نمی شوند. فقط در صورتی که هیچکدام از این موارد برای شما مهم نیست این قابلیت را غیر فعال کنید.

محدود کردن

روند محدود کردن بسیار ساده بوده و کافیست قطعه کد زیر را در فایل functions.php قالب فعال خود اضافه کنید تا این قابلیت پیشفرض در وردپرس غیرفعال شود:

add_action( 'init', 'hgw_disable_heartbeat_api', 1 );
function hgw_disable_heartbeat_api() {
	wp_deregister_script('heartbeat');
}

اگر به وردپرس مسلط نیستید و با کدنویسی آشنایی ندارید برای ویرایش فایل functions.php ابتدا وارد پنل پیشخوان وردپرس شده در بخش نمایش روی ویرایشگر پوسته کلیک کنید و سپس در منو سمت چپ روی فایل functions.php یا همان توابع پوسته کلیک کنید. پس از باز شدن فایل کد بالا را بعد از <?php اضافه کنید.

البته بهتر است قالب اصلی را ویرایش نکنید چرا که پس از بروزرسانی تمامی تغییرات حذف خواهند شد، بهترین راه برای سفارشی سازی و اعمال تغییرات در قالب وردپرس ایجاد یک قالب فرزند و اعمال تغییرات در پوسته فرزند است.

محدود کردن از طریق افزونه

یکی از بهترین افزونه‌ها برای غیر فعال کردن این ویژگی افزونه Heartbeat Control است، نام افزونه را در صفحه افزودن افزونه جستجو کرده و افزونه را نصب و فعال کنید، اگر در وردپرس تازه وارد هستید میتوانید مقاله آموزش نصب افزونه در وردپرس را مطالعه کنید.

پس از فعال کردن افزونه وارد تنظیمات افزونه شوید، صفحه تنظیمات مشابه تصویر زیر است:

Heartbeat API چیست، چگونه آن را غیرفعال و یا مدیریت کنیم؟

تنظیمات افزونه

  • Heartbeat Behavior: به شما امکان می دهد این ویژگی را فعال، غیرفعال کنید و یا تغییر دهید.
  • Locations: تعیین می کند که از کدام ناحیه می خواهید API را کنترل کنید.
  • Frequency: تعداد درخواست ها بر حسب ثانیه را مشخص کنید، این مقدار از 15 تا 300 ثانیه متغیر است

همانطور که مشاهده می کنید این افزونه تنظیمات لازم برای مدیریت ضربان قلب وردپرس را در اختیار شما قرار می دهد، اما اگر وب سایت شما دارای چندین نویسنده است بهتر تنظیمات اعمال شده در تصویر را اعمال کنید. لازم به ذکر است که افزونه WP Rocket نیز میتواند این ویژگی را غیر فعال کند.

جمع بندی

در این مقاله شما با WordPress Heartbeat API و عملکرد آن آشنا شدید، اگرچه این قابلیت مفید است اما ممکن است برای آن دسته از کاربرانی که از سرویس‌های هاست اشتراکی استفاده می کنند مشکل ساز باشد. چرا که این ویژگی موجب افزایش مصرف منابع و CPU شده که در هاست های اشتراکی ممکن است منجر به تعلیق سرویس شما شود.