Domanda

Non sono un utente di Google App Engine. Tuttavia, capisco che stai fatturati per il tempo di CPU e di altre risorse. Quali sono le conseguenze se vi capita di creare un ciclo infinito? Will Google mai porvi fine, o dovrete farlo da soli manualmente in qualche modo?

Sono uno sviluppatore hobbista preoccupato per un piccolo errore che potrebbe finire per costare centinaia.

È stato utile?

Soluzione

(io sono un dipendente di Google, ma hanno poca esperienza con AppEngine. Si prega di non considerare questo una risposta "ufficiale".)

Sto indovinando che si sta utilizzando il servlet Java API -. In caso contrario, si prega di specificare

AppEngine servlet docs :

  

Un gestore di richieste ha un numero limitato   di tempo per generare e restituire un   risposta ad una richiesta, tipicamente   circa 30 secondi. Decorso il termine   è stato raggiunto, il gestore della richiesta   è interrotto.

Non so come / se questo avviene in una stretta-loop che non consentirebbe la VM di interrompere in "normale" Java.

Altri suggerimenti

Mentre Jon gestito il caso basso livello di un ciclo infinito, ci potrebbe anche essere una situazione in cui uno dei vostri gestori si chiama ripetutamente una quantità eccessiva di volte - forse accidentalmente configurare qualcosa per il backup dell'intero archivio dati ogni secondo, invece di una volta al giorno. In teoria, si potrebbe usare un sacco di risorse, anche in 30 secondi pezzi. Tuttavia, si potrebbe ancora non essere in pericolo di accumulare una grande quantità di spese. Hai la possibilità di impostare un limite su quanto si vuole "spendere" al giorno. Se si dispone di alcuna quota a sinistra, la vostra applicazione restituirà un errore, non è messo in prigione per debiti.

Google AppEngine impone un limite su quanto tempo una richiesta può richiedere prima di essere terminato,

C'è un circa il 30 secondo limite imposto per quanto tempo una richiesta deve prendere prima che venga terminata. Tuttavia, poco prima che il processo è terminato, verrà generata un'eccezione DeadlineExceededError.

Inoltre ci sono al minuto quote per prevenire l'applicazione da consumare troppa quota in un breve periodo di tempo. E 'molto improbabile che l'applicazione supererà la quota al minuto in condizioni normali, ma, se necessario, con un incremento a questo contingente possono essere richiesti .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top