JavaRush /Java-Blog /Random-DE /Kleine Tricks mit Heroku
Игорь
Level 40
Киев

Kleine Tricks mit Heroku

Veröffentlicht in der Gruppe Random-DE
Stellen wir uns die Situation vor. Sie haben den JavaRush-Kurs abgeschlossen, ein Online-Praktikum absolviert und haben Ihr erstes Projekt auf der Heroku PaaS-Plattform . Sie verschicken Ihren Lebenslauf und beginnen mit den Vorstellungsgesprächen. Und bei einem von ihnen werden Sie gebeten, Ihr Projekt zu zeigen (oder sie möchten es sich noch vor dem Vorstellungsgespräch schnell ansehen, indem sie dem Link in Ihrem Lebenslauf folgen). Der Browser öffnet sich und das Laden Ihrer Website dauert lange. Ja, Sie können erklären, dass es sich um kostenloses Heroku handelt und dass es so funktioniert, aber der Eindruck wird getrübt. Wir werden in diesem Artikel versuchen, die Gründe für dieses Verhalten und Methoden zu seiner Bekämpfung zu verstehen.
Kleine Tricks mit Heroku - 1
Beginnen wir mit dem Konzept der Dyno-Stunden . Laut Dokumentation sind Dyno-Stunden im Wesentlichen die Laufzeit Ihrer Anwendung(en), ausgedrückt in Stunden/Monat. Unmittelbar nach der Registrierung eines kostenlosen Kontos erhalten Sie 550 Stunden pro Monat. Nach einfachen Berechnungen kommen wir für eine Anwendung auf etwa 17 Stunden pro Tag. Es wird nicht reichen. Daher verknüpfen wir in den Kontoeinstellungen – Abrechnung eine Kreditkarte und erhalten weitere 450 Freistunden (bereits 32 Stunden am Tag). Dieses Problem wurde behoben. Es gibt noch einen. Das obige Dokument besagt auch, dass die Anwendung in den Ruhezustand wechselt, wenn 30 Minuten lang keine Aktivität stattfindet. Im Internet gibt es drei Hauptansätze:
  1. Senden Sie regelmäßig (z. B. alle 5 Minuten) Anfragen aus der Anwendung selbst an die Anwendung.

    Mit JavaScript würde es so aussehen:

    var http = require("http");
    setInterval(function() {
        http.get("http://<your app name>.herokuapp.com");
    }, 300000); // every 5 minutes (300000)
  2. Verwenden Sie externe Ping-Sites, die Ihre Site in bestimmten Abständen überprüfen.

    Beispiele für solche Websites sind Pingdom , Uptime Robot , Kaffeine und andere. Das Prinzip ist einfach. Wir gehen hinein, registrieren uns (falls erforderlich), geben den Standort und das Zeitintervall an und übernehmen die Einstellungen.

  3. Verwenden Sie das Heroku Newrelic-Add-on. Dieses Plugin dient zur Überwachung und Benachrichtigung über Website-Abstürze, aber als nützlichen „Nebeneffekt“ verhindert es, dass die Anwendung in den Ruhezustand übergeht. Ich habe mich für diese Methode entschieden, die meiner Meinung nach die schönste ist. Ich werde es genauer beschreiben.

    Um das Add-on zu installieren, müssen Sie diesem Link folgen und auf die Schaltfläche „New Relic APM installieren“ klicken . Im sich öffnenden Fenster müssen Sie einen Tarifplan und den Namen der Anwendung auswählen, auf die dieses Add-on angewendet werden soll.

    Kleine Tricks mit Heroku - 2

    Anschließend betätigen Sie den Button „Add-on bereitstellen“ .

    Nach der Installation ist New Relic auf der Seite mit den Anwendungseinstellungen in der Liste der installierten Add-ons verfügbar.

    Kleine Tricks mit Heroku - 3

    Klicken Sie auf den Link und Sie werden zur Seite mit den Add-on-Einstellungen weitergeleitet.

    Gehen Sie zur Registerkarte „Synthetik“ und klicken Sie auf die Schaltfläche „Neu hinzufügen“.

    Kleine Tricks mit Heroku - 4

    Geben Sie im sich öffnenden Fenster im Abschnitt „Geben Sie die Details ein“ einen beliebigen Namen des Monitors und die Adresse der Site ein, die wir überwachen möchten. Den Ort, von dem aus die Site überprüft werden soll, wählen wir unter „Überwachungsstandorte auswählen“ aus .

    Die Häufigkeit des Eincheckens geben wir unter „Zeitplan festlegen“ an (ich habe es auf 15 Minuten eingestellt) und die E-Mail für Benachrichtigungen unter „Benachrichtigung erhalten“.

    Vergessen Sie nach allen Einstellungen nicht, auf die Schaltfläche „Monitor erstellen“ zu klicken.

Voila, der Monitor wurde erstellt und jetzt funktioniert Ihre Anwendung rund um die Uhr und wird nicht im entscheidenden Moment ausfallen :)
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION