Abbiamo una terribile esperienza con gae go. Quando la nostra app era gratuita, non abbiamo mai avuto problemi con il limite di memoria privata limitata superata. Abbiamo raggiunto quota, quindi abbiamo deciso di pagare. Il nostro budget giornaliero è impostato su $ 3. Dopo l'attivazione del servizio a pagamento, siamo stati in grado di utilizzare nuovamente il sito e l'eccesso di quota è andato via. Poche ore dopo, abbiamo ottenuto il limite di memoria privata limitata superato e non è stato più possibile visualizzare altro. Ho provato a cancellare alcuni big data in datastore, disabilitare i built-in e ancora senza fortuna.Limite di memoria privata limitato superato
Ho fatto qualche prova nel codice per capire da dove proviene l'errore. Rimuovendo il codice di accesso al datastore, il sito è stato resuscitato. Quindi la mia conclusione è accedere a datastore anche solo per recuperare pochissime entità che avrebbero sollevato un errore come questo. Siamo un po 'senza speranza. Abbiamo optato per utilizzare appspot per sfruttare la tecnologia, ma otteniamo questo e non possiamo passare allo sviluppo.
Di seguito è riportato solo il codice che genera questo tipo di errore.
q := datastore.NewQuery("Course")
courses := make([]courseData, 0)
if keys, err := q.GetAll(c, &courses); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
} else {
for i := range courses {
courses[i].Key = keys[i]
}
}
Qualsiasi aiuto che potreste estendere a noi sarebbe molto apprezzato. Grazie in anticipo.
disclaimer, non usare gae. Ma, quanto sopra solleva la domanda, quanti corsi ci sono? Quanti dati ci sono in ogni corso? – dskinner
Hai profilato la tua app per vedere dove viene consumata la memoria? Tutte le istanze hanno una quantità limitata di memoria (F1 - 128 MB) se si va e si preleva un'enorme quantità di dati, naturalmente si spegneranno i limiti di memoria. –
A meno che non abbiate bisogno di tutti i corsi contemporaneamente, forse provare a ripetere i risultati della query anziché utilizzare GetAll()? –