Antes de actualizar a la versión más reciente del SDK de servicios de App Engine, revisa la descripción general de la migración.
Para migrar a Cloud Tasks de forma automática, actualiza el SDK de servicios de App Engine a la versión más reciente. Después de la actualización, el SDK redirecciona automáticamente las llamadas PushQueue a las APIs de frontend de Cloud Tasks. Cloud Tasks conserva las listas de tareas en cola y las tareas existentes, por lo que no se requiere ninguna migración adicional.
Tras bambalinas, el SDK actualizado usa las APIs de Cloud Tasks para mantener la paridad de funciones con las funciones de las listas de tareas en cola. El SDK admite lo siguiente:
- Creación de tareas por lotes: El SDK usa APIs por lotes para admitir la adición de hasta 100 tareas en una sola llamada.
- Reintentos a nivel de la tarea: El SDK admite configuraciones de reintento específicas de la tarea.
- Tareas transaccionales: El SDK pone en cola las tareas dentro de las transacciones de Datastore. Para mantener la confiabilidad, crea o modifica el archivo
cron.yaml.
Precios y cuotas
Migrar las listas de aplicaciones en cola a Cloud Tasks puede afectar los precios y las cuotas de tu app.
Precios
Revisa los precios de Cloud Tasks para calcular tu costo mensual antes de la migración.
Al igual que sucede con las listas de tareas en cola, enviar solicitudes a tu app de App Engine con un destino de envío de Cloud Tasks es gratis. Sin embargo, a diferencia de las listas de tareas en cola, Cloud Tasks cobra por la operación realizada, como crear, borrar o administrar tareas. Esto puede generar un costo mensual general más alto en comparación con la lista de tareas en cola de App Engine complementaria.
Cuotas
Las solicitudes de Cloud Tasks también se incluyen en las cuotas de solicitudes de App Engine.
Al igual que las listas de tareas en cola, Cloud Tasks tiene cuotas específicas del servicio. Es probable que la migración a Cloud Tasks cambie tus cuotas.
Antes de comenzar
En las siguientes secciones, se analizan las consideraciones de costo y cuota antes de migrar las listas de aplicaciones en cola a Cloud Tasks.
Asegúrate de tener acceso al código fuente de App Engine.
Habilita las APIs de Cloud Tasks y Cloud Scheduler:
Para asegurarte de que la cuenta de servicio de App Engine tenga los permisos necesarios para permitir que el SDK envíe tareas a la API de Cloud Tasks, pídele a tu administrador que otorgue el rol de IAM de Cloud Tasks Enqueuer (
roles/cloudtasks.enqueuer) en el proyecto.
Actualiza el SDK de servicios de App Engine
Asegúrate de que tu aplicación use la versión más reciente del SDK de servicios de App Engine.
En tu
pom.xml, actualiza el SDK de servicios de App Engine a la versiónv5.2.0-betao posterior.com.google.appengine appengine-api-1.0-sdk v5.2.0-beta Habilita el enrutamiento de Cloud Tasks
runtime: java25 service: my-service-b env_variables: APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"Actualiza la dependencia del SDK de App Engine en tu
pom.xmla la versiónv5.2.0-betao posterior.Si tu app usa una configuración XML (
appengine-web.xml):<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>Implementa tu app con el siguiente comando:
gcloud app deployVerifica las listas de aplicaciones en cola en Cloud Tasks para verificar que tu app use Cloud Tasks.
Configura tareas transaccionales (opcional)
Si tu app pone en cola tareas dentro de las transacciones de Datastore, el SDK se basa en un trabajo cron interno para garantizar que, finalmente, se procesen las tareas que no se pudieron poner en cola durante la confirmación de Datastore.
Para controlar las tareas transaccionales de la lista de aplicaciones en cola, crea o actualiza tu archivo cron.yaml para llamar al procesador interno de forma periódica. Por ejemplo:
cron:
- description: "Process push queue transactional tasks"
url: /_ah/cloudtask/sweep
schedule: every 30 minutes # Change this based on the usage pattern
Agrega la asignación de URL en tu archivo web.xml para utils.servlet.SweeperServlet o utils.servlet.jakarta.SweeperServlet para los entornos de ejecución de Java 17/21 Jakarta EE.
<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>
¿Qué sigue?
- Documentación de Cloud Tasks
- Biblioteca cliente de Cloud Tasks
- Descripción general de la referencia de REST de Cloud Tasks
- Descripción general de la referencia de RPC de Cloud Tasks