Questi errori provengono da due posizioni diverse, il primo, l'errore di chiamata, è un errore locale causato da un timeout nel client RPC. Indica che c'è stato un timeout in attesa del completamento di un RPC. Il timeout RPC predefinito in google.golang.org/appengine è di 60 secondi.
Il secondo errore deriva dal lato del servizio. Questo errore indica che si è verificato un timeout durante l'esecuzione delle operazioni all'interno del datastore. Alcune di queste operazioni hanno timeout molto più brevi degli anni '60, e in genere questo può indicare contesa.
Un modo forse più semplice per comprendere le differenze è che si scoprirà che se si esegue una singola operazione multipla con un numero molto elevato di modifiche, è possibile attivare facilmente il primo timeout. Se crei un numero significativo di operazioni simultanee contro una singola chiave o un piccolo set di chiavi, innescherai più facilmente quest'ultima. Poiché i timeout sono indicatori generali di saturazione delle risorse condivise, ci sono naturalmente molti modi e combinazioni per generarli. In generale, si vorranno riprovare le operazioni in modo appropriato, e anche dimensionare le operazioni in modo appropriato, nonché aggregare le operazioni sui tasti di scelta rapida nel miglior modo possibile per ridurre la possibilità di problemi relativi alla contesa. Come altri hanno suggerito, i documenti python e java ne hanno già alcuni esempi.
Si potrebbe desiderare di fare uso di https://godoc.org/google.golang.org/appengine#IsTimeoutError e se è necessario aumentare il timeout per la prima classe di errore, si può essere in grado di regolare la scadenza contesto, vedere i metodi qui: https://godoc.org/golang.org/x/net/context#WithDeadline Nota: Non sarà in grado di estendere la scadenza oltre quella di una scadenza di richiesta, tuttavia, se si esegue in attività o VM è possibile estendere a scadenze lunghe.
Il primo errore visualizzato potrebbe essere solo il timeout in funzionamento normale, il secondo è probabilmente dovuto a conflitto di scrittura. Ulteriori informazioni su questo: [Gestione degli errori Datastore] (https://cloud.google.com/appengine/articles/handling_datastore_errors) – icza
Grazie! Continua ad essere fantastico! –