2011-02-06 13 views
5

Recientemente comencé a utilizar la puesta en escena limitada en mi proyecto de Google App Engine. Los datos todavía se comparten entre todas las versiones, pero el comportamiento (especialmente el comportamiento dirigido al usuario) es diferente.¿Cómo ejecutar trabajos cron de GAE como una versión de aplicación específica?

Naturalmente, cuando implemento algo increíblemente nuevo, solo funciona con la última versión de mi código y no creo que deba volverse a utilizar en las versiones anteriores.

Algunas de estas nuevas funcionalidades requieren que los trabajos cron se ejecuten periódicamente, pero estoy llegando a un problema. Tengo que ejecutar una tarea programada para llamar al último código, pero esto es lo que la documentación de Google tiene que decir sobre el tema:

Cron requests are always sent to the default version of the application. 

La versión predeterminada es la más antigua, porque las primeras versiones del código de cliente que salió para los usuarios no eran a prueba de futuro y no saben cómo seleccionar la versión de API para llamar.

Así que mi pregunta es, ¿cómo puedo evitar esta limitación y hacer un trabajo cron que llamará a la última versión en lugar de la predeterminada de la aplicación?

Respuesta

3

No puede cambiar las tareas cron para que se ejecuten en una versión diferente y luego en la predeterminada.

Dependiendo de la cantidad de tiempo que tarda su trabajo cron en ejecutarse, puede cambiar su script de trabajo cron para hacer una URLFetch a "http://latest.appname.appspot.com/cron_job_endpoint".

Si su tarea cron tarda más de 10 minutos en ejecutarse, entonces la diseñaría de manera que pueda encadenar las diferentes tareas mediante colas de tareas.

+0

Gracias por la idea, hice una API simple que actúa como un metacron y simplemente llama a la url del cronjob real en la versión de la aplicación apropiada. –

12

Ahora puede especificar una versión utilizando la etiqueta de destino.

<target>version-2</target> 
+2

En cron.yaml, puede agregar la línea 'target: 2' – hamx0r

Cuestiones relacionadas