Ich verwende einen Java-Server in Google App Engine. Es scheint, dass das GAE-Konto die 9 freien Instanzenstunden verbraucht, die mit GAE-Backend-Instanzen geliefert werden, aber bisher habe ich den Server hauptsächlich auf localhost während der Entwicklung ausgeführt (mit nur wenigen Live-Bereitstellungen, nur um die Bereitstellung zu testen) verarbeiten). Warum werden Instanzenstunden verbraucht?Unbenutzte Google App Engine-Instanz, die das Kontingent überschreitet
Antwort
Welche Skalierung haben Sie in Ihrem Projekt? Basic, manuell oder automatisch?
edit: Wie Sie haben seit angegeben Sie manuelle Skalierung verwenden:
Manuelle Skalierung: Ein Dienst mit manueller Skalierung läuft kontinuierlich, ermöglicht es Ihnen, komplexe Initialisierung durchzuführen und verlassen auf dem Zustand seines Speichers im Laufe der Zeit. Dieses
bedeutet, dass Ihre Handvoll Live-Implementierungen wahrscheinlich mindestens eine im manuellen Skalierungsmodus hat, die Ihr Problem verursacht
Auch wenn dies eine recht alte Frage und Sie wahrscheinlich schon herausgefunden, hier ist die einfachste Lösung: Ersetzen manual-scaling
Abschnitt mit einem basic-scaling
eins.
Ihre appengine-web.xml
aussehen wird wie unten
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>myApplicationId</application>
<version>1</version>
<threadsafe>true</threadsafe>
<basic-scaling>
<max-instances>1</max-instances>
<idle-timeout>10m</idle-timeout>
</basic-scaling>
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />
</system-properties>
</appengine-web-app>
Das bedeutet, dass durch basic-scaling
, wird Ihre Anwendung haben maximal 1 Instanz ausgeführt wird, und wird passiviert werden (so dass Sie nicht dafür bezahlen) nach 10 Minuten
Während Dies kann für einen schnellen Test während der Entwicklung funktionieren nicht OK für längere Tests oder Produktion. Aus dem befolgten Lernprogramm (siehe Kommentare): "Um Firebase mit der App Engine-Standardumgebung zu verwenden, müssen Sie die manuelle Skalierung verwenden. Dies liegt daran, dass Firebase Hintergrundthreads für Änderungen verwendet und die App Engine-Standardumgebung nur langlebige Hintergrundthreads zulässt auf manuell skalierten Backend-Instanzen. " –
ich habe mit Firebase GAE integriert und als solche aktiviert manuelle Skalierung wie in diesem Tutorial beschrieben: https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio#configuring_the_app_engine_backend_to_use_manual_scaling – user2181948