2010-10-20 20 views
6

Estoy desarrollando una aplicación de App Engine que usa Memcache. Dado que solo hay una única Memcache compartida entre todas las versiones de su aplicación, estoy enviando potencialmente datos incorrectos de una nueva versión a la versión de producción Memcache. Para evitar esto, creo que puedo agregar la versión de la aplicación a la cadena de claves de Memcache para permitir que varias versiones de la aplicación mantengan sus datos separados.Versión de App Engine, Memcache

que podía hacer esto manualmente, pero me gustaría que tirar en la versión de la app.yaml

¿Cómo puedo acceder a la versión de la aplicación desde dentro del código Python?

Respuesta

12

La variable os.environ contiene una clave llamada CURRENT_VERSION_ID que puede usar. Su valor se compone de version de app.yaml concatenado junto con un punto y lo que sospecho es el api_version. Si configuro version a 42 me da el valor de 42.1. No debería tener problemas para extraer el número de versión solo, pero puede que no sea una mala idea mantener también el api_version.

EDIT:

@ Nick Johnson ha señalado que el número a la derecha del período es la versión secundaria, un número que se incrementa cada vez que se implementa el código. En el servidor de desarrollo, este número es siempre 1.

+0

gracias, voy a llamar a os.environ.get ('CURRENT_VERSION_ID', '') –

+3

La segunda parte de la versión es la ID de la versión 'secundaria'. En el servidor de desarrollo, siempre es 1, pero en producción cambia con cada implementación. –

+0

@Nick Johnson, gracias por señalar eso. Eso es muy bueno saber –