بیایید شرایط را تصور کنیم. شما دوره JavaRush را تکمیل کردید، یک کارآموزی آنلاین را به پایان رساندید و اولین پروژه خود را در پلتفرم Heroku PaaS دارید . شما رزومه خود را ارسال می کنید و شروع به مصاحبه می کنید. و در یکی از آنها از شما خواسته می شود که پروژه خود را نشان دهید (یا آنها می خواهند حتی قبل از مصاحبه با دنبال کردن پیوند رزومه شما به سرعت به آن نگاه کنند). مرورگر باز می شود و بارگذاری سایت شما زمان زیادی می برد. بله، می‌توانید توضیح دهید که این Heroku رایگان است و اینطوری کار می‌کند، اما این تصور خراب است. در این مقاله سعی خواهیم کرد دلایل این رفتار و روش های مبارزه با آن را درک کنیم.
ترفندهای کوچک با Heroku - 1
بیایید با مفهوم ساعت داینو شروع کنیم . طبق مستندات ، ساعات Dyno اساساً زمان اجرای برنامه / برنامه های شما است که بر حسب ساعت / ماه بیان می شود. بلافاصله پس از ثبت نام یک حساب کاربری رایگان، 550 ساعت در ماه به شما فرصت داده می شود. با انجام محاسبات ساده، حدود 17 ساعت در روز برای یک برنامه دریافت می کنیم. کافی نخواهد بود بنابراین، ما یک کارت اعتباری را در تنظیمات حساب - صورت‌حساب پیوند می‌دهیم و 450 ساعت دیگر (32 ساعت در روز در حال حاضر) دریافت می‌کنیم. این مشکل برطرف شده است. یکی دیگر وجود دارد. در سند فوق همچنین آمده است که در صورت عدم وجود فعالیت به مدت 30 دقیقه، برنامه "dyno sleep" خواهد داشت . سه رویکرد اصلی در اینترنت وجود دارد:
  1. به طور منظم (مثلاً هر 5 دقیقه یک بار) درخواست ها را از داخل خود برنامه به برنامه ارسال کنید.

    با استفاده از جاوا اسکریپت به شکل زیر است:

    var http = require("http");
    setInterval(function() {
        http.get("http://<your app name>.herokuapp.com");
    }, 300000); // every 5 minutes (300000)
  2. از سایت های پینگ خارجی استفاده کنید که سایت شما را در بازه های زمانی مشخص بررسی می کنند.

    نمونه هایی از این گونه سایت ها عبارتند از Pingdom ، Uptime Robot ، Kaffeine و دیگران. اصل ساده است. وارد می شویم، ثبت نام می کنیم (در صورت لزوم)، سایت و فاصله زمانی را مشخص می کنیم و تنظیمات را اعمال می کنیم.

  3. از افزونه Heroku Newrelic استفاده کنید این افزونه برای نظارت و اطلاع رسانی در مورد خرابی سایت طراحی شده است، اما به عنوان یک "عوارض جانبی" مفید از به خواب رفتن برنامه جلوگیری می کند. من به این روش که به نظر من زیباترین است، اکتفا کردم. من آن را با جزئیات بیشتر توضیح خواهم داد.

    برای نصب افزونه، باید این پیوند را دنبال کنید و روی دکمه "Install New Relic APM" کلیک کنید . در پنجره ای که باز می شود، باید یک طرح تعرفه و نام برنامه ای که این افزونه برای آن اعمال می شود را انتخاب کنید.

    ترفندهای کوچک با Heroku - 2

    سپس دکمه "Provision add-on" را فشار دهید .

    پس از نصب، New Relic در صفحه تنظیمات برنامه در لیست افزونه های نصب شده در دسترس خواهد بود.

    ترفندهای کوچک با Heroku - 3

    روی لینک کلیک کنید و به صفحه تنظیمات افزونه هدایت می شوید.

    به تب "Synthetics" بروید و روی دکمه "افزودن جدید" کلیک کنید.

    ترفندهای کوچک با Heroku - 4

    در پنجره ای که باز می شود، در بخش "Enter the details" نام دلخواه مانیتور و آدرس سایتی که ما نظارت خواهیم کرد را مشخص کنید. ما مکانی را انتخاب می کنیم که از آنجا سایت در "انتخاب مکان های نظارت" بررسی می شود .

    تعداد دفعات بررسی را در "تنظیم جدول زمانی" (من آن را روی 15 دقیقه تنظیم کردم) و ایمیل اعلان ها را در "دریافت اطلاع رسانی" نشان می دهیم.

    پس از انجام تمام تنظیمات، فراموش نکنید که روی دکمه "ایجاد مانیتور" کلیک کنید.

Voila، مانیتور ایجاد شده است و اکنون برنامه شما 24/7 کار می کند و در حساس ترین لحظه شکست نخواهد خورد :)