2011-02-06 8 views
5

Recentemente ho iniziato a utilizzare la gestione temporanea limitata sul mio progetto Google App Engine. I dati sono ancora condivisi tra tutte le versioni, ma il comportamento (in particolare il comportamento di fronte utente) è diverso.Come eseguire i lavori cron GAE come versione specifica dell'app?

Naturalmente quando ho implementare qualcosa di incredibilmente nuovo funziona solo sulla versione più recente del mio codice e non mi sento come dovrebbe essere backported alle versioni precedenti.

Alcune di questa nuova funzionalità richiede cron jobs da eseguire periodicamente, ma sto colpendo un problema. Devo eseguire un job cron per chiamare l'ultimo codice, ma questo è ciò che la documentazione di Google ha da dire sulla questione:

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

La versione di default è la più antica perché le prime versioni del codice client che è andato fuori per gli utenti non erano a prova di futuro e non sanno come selezionare quale versione dell'API chiamare.

Quindi la mia domanda è, come posso aggirare questa limitazione e fare un job cron che chiamerà l'ultima piuttosto che la versione di default dell'applicazione?

risposta

3

Non è possibile modificare i lavori cron per l'esecuzione su una versione diversa, allora il default.

A seconda di quanto tempo impiega il cron per eseguire, è possibile modificare lo script del cron job per eseguire un URLFetch su "http://latest.appname.appspot.com/cron_job_endpoint".

Se il processo di cron richiede più tempo per l'esecuzione di 10 minuti, quindi lo progetterei in modo da poter concatenare le varie attività utilizzando le code delle attività.

+0

Grazie per l'idea, ho creato una semplice API che funge da meta-cron e chiama semplicemente l'url del cronjob effettivo nella versione dell'app appropriata. –

12

Ora è possibile specificare una versione utilizzando il tag di destinazione.

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

In cron.yaml, puoi aggiungere la linea 'target: 2' – hamx0r

Problemi correlati