2010-10-20 23 views
6

Sto sviluppando un'app App Engine che utilizza memcache. Poiché esiste una sola memcache condivisa tra tutte le versioni della tua app, sto potenzialmente inviando dati non validi da una nuova versione alla versione di produzione memcache. Per evitare ciò, penso che potrei aggiungere la versione dell'app alla stringa della chiave memcache per consentire a varie versioni dell'app di mantenere separati i loro dati.Versione App Engine, Memcache

ho potuto farlo manualmente, ma mi piacerebbe tirare nella versione dal app.yaml

Come posso accedere alla versione app dall'interno del codice Python?

risposta

12

La variabile os.environ contiene una chiave denominata CURRENT_VERSION_ID che è possibile utilizzare. Il suo valore è composto dallo version da app.yaml concatenato insieme a un punto e ciò che sospetto sia lo api_version. Se imposto il valore da version a 42, il valore è 42.1. Non dovresti avere problemi a estrarre il numero di versione da solo, ma potrebbe non essere una cattiva idea tenere anche il api_version.

EDIT:

@ Nick Johnson ha sottolineato che il numero a destra del periodo è la versione minore, un numero che viene incrementato ogni volta che si distribuisce il codice. Sul server di sviluppo questo numero è sempre 1.

+0

grazie, ho intenzione di chiamare os.environ.get ('CURRENT_VERSION_ID', '') –

+3

La seconda parte della versione è l'ID di versione 'minore'. Sul server di sviluppo è sempre 1, ma in produzione cambia con ogni distribuzione. –

+0

@Nick Johnson, grazie per averlo indicato. È molto bello saperlo. –