Push-Warteschlangen zu Cloud Tasks migrieren, indem Sie auf das neueste SDK aktualisieren (Java)

Bevor Sie auf die neueste App Engine Services SDK-Version aktualisieren, lesen Sie die Migrationsübersicht.

Sie können automatisch zu Cloud Tasks migrieren, indem Sie Ihr App Engine Services SDK auf die neueste Version aktualisieren. Nach dem Upgrade leitet das SDK PushQueue-Aufrufe automatisch an die Cloud Tasks-Frontend-APIs weiter. In Cloud Tasks bleiben Ihre vorhandenen Aufgabenwarteschlangen und Aufgaben erhalten, sodass keine zusätzliche Migration erforderlich ist.

Im Hintergrund verwendet das aktualisierte SDK die Cloud Tasks APIs, um die Funktionsparität mit den Funktionen von Aufgabenwarteschlangen aufrechtzuerhalten. Das SDK unterstützt Folgendes:

  • Batch-Aufgabenerstellung: Das SDK verwendet Batch-APIs, um das Hinzufügen von bis zu 100 Aufgaben in einem einzigen Aufruf zu unterstützen.
  • Wiederholungen auf Aufgabenebene: Das SDK unterstützt aufgabenspezifische Wiederholungskonfigurationen.
  • Transaktionsaufgaben: Das SDK stellt Aufgaben in Datastore transaktionen in die Warteschlange. Um die Zuverlässigkeit aufrechtzuerhalten, erstellen oder ändern Sie die Datei cron.yaml.

Preise und Kontingente

Die Migration Ihrer Push-Warteschlangen zu Cloud Tasks kann sich auf die Preise und Kontingente für Ihre Anwendung auswirken.

Preise

Sehen Sie sich die Cloud Tasks-Preise an, um Ihre monatlichen Kosten vor der Migration zu schätzen.

Ähnlich wie bei Aufgabenwarteschlangen ist das Senden von Anfragen an Ihre App Engine-Anwendung mit einem Cloud Tasks-Push-Ziel kostenlos. Im Gegensatz zu Aufgabenwarteschlangen werden bei Cloud Tasks jedoch Vorgänge wie das Erstellen, Löschen oder Verwalten von Aufgaben in Rechnung gestellt. Dies kann zu höheren monatlichen Gesamtkosten führen als bei der kostenlosen App Engine-Aufgabenwarteschlange.

Kontingente

Cloud Tasks-Anfragen werden auch auf Ihre App Engine-Anfragekontingente angerechnet.

Wie bei Aufgabenwarteschlangen gibt es auch bei Cloud Tasks dienstspezifische Kontingente. Durch die Migration zu Cloud Tasks ändern sich wahrscheinlich Ihre Kontingente.

Hinweis

In den folgenden Abschnitten werden die Kosten und Kontingente erläutert, die vor der Migration von Push-Warteschlangen zu Cloud Tasks berücksichtigt werden müssen.

  1. Achten Sie darauf, dass Sie Zugriff auf den App Engine-Quellcode haben.

  2. Aktivieren Sie die Cloud Tasks API und die Cloud Scheduler API:

    APIs aktivieren

  3. Bitten Sie Ihren Administrator, dem App Engine-Dienstkonto die erforderlichen Berechtigungen zu gewähren, damit das SDK Aufgaben an die Cloud Tasks API senden kann. Gewähren Sie die Cloud Tasks-Aufgaben in die Warteschlange stellen (roles/cloudtasks.enqueuer) IAM-Rolle für das Projekt.

App Engine Services SDK aktualisieren

  1. Achten Sie darauf, dass Ihre Anwendung die neueste Version des App Engine Services SDK verwendet.

    Aktualisieren Sie in der Datei pom.xml das App Engine Services SDK auf Version v5.2.0-beta oder höher.

    
        com.google.appengine
        appengine-api-1.0-sdk
        v5.2.0-beta
    
  2. Cloud Tasks-Routing aktivieren

    runtime: java25
    service: my-service-b
    
    env_variables:
      APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"
    

    Aktualisieren Sie die App Engine SDK-Abhängigkeit in der Datei pom.xml auf Version v5.2.0-beta oder höher.

    Wenn Ihre Anwendung eine XML-Konfiguration (appengine-web.xml) verwendet:

    <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
      <service>my-java-service-b</service>
      <runtime>java25</runtime>
      <env-variables>
        <env-var name="APPENGINE_USE_CLOUDTASK_PUSH_QUEUE" value="true" />
      </env-variables>
    </appengine-web-app>
    
  3. Anwendung bereitstellen:

    gcloud app deploy
    
  4. Prüfen Sie die Push-Warteschlangen in Cloud Tasks um zu bestätigen, dass Ihre Anwendung Cloud Tasks verwendet.

Transaktionsaufgaben konfigurieren (optional)

Wenn Ihre Anwendung Aufgaben in Datenspeichertransaktionen in die Warteschlange stellt, verwendet das SDK einen internen Cronjob, um sicherzustellen, dass alle Aufgaben, die während des Datenspeicher-Commits nicht in die Warteschlange gestellt werden können, letztendlich verarbeitet werden.

Um transaktionale Aufgaben für Push-Warteschlangen zu verarbeiten, erstellen oder aktualisieren Sie die Datei cron.yaml, um den internen Prozessor regelmäßig aufzurufen. Beispiel:

cron:
- description: "Process push queue transactional tasks"
  url: /_ah/cloudtask/sweep
  schedule: every 30 minutes # Change this based on the usage pattern

Fügen Sie in der Datei web.xml eine URL-Zuordnung für utils.servlet.SweeperServlet oder utils.servlet.jakarta.SweeperServlet für Java 17/21 Jakarta EE-Laufzeiten hinzu.

<servlet>
 <servlet-name>cloudtask_sweep</servlet-name>
 <servlet-class>com.google.apphosting.utils.servlet.SweeperServlet</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>cloudtask_sweep</servlet-name>
 <url-pattern>/_ah/cloudtask/sweep</url-pattern>
</servlet-mapping>

Nächste Schritte