? Estoy un poco confundido acerca de cómo Go maneja las solicitudes concurrentes en Google App Engine. Así que espero que alguien pueda darme algo de claridad.¿Cómo maneja Go la solicitud simultánea en Google App Engine
Éstos son los hechos que he recogido:
Go es el único subproceso en App Engine. - this is because it is possible to do arbitrary pointer arithmetic by creating race conditions with multiple threads
Si Go es un solo subproceso en App Engine entonces el punto 3 se discutible. Esto deja 1 y 2. Si Go on App Engine tiene un único subproceso y se requieren subprocesos para continuar la ejecución mientras se bloquea para E/S, parece que una instancia de App Engine Go bloqueará todas las rutinas mientras espera en E/S.
Es esto correcto? De lo contrario, ¿cómo funciona la concurrencia de Go en App Engine?
Para ayudar a cuantificar las cosas. Si tuviera que mantener una conexión abierta durante 30 segundos. ¿Cómo pueden mantener conexiones simultáneas una sola instancia de AE Go?
Gracias.
EDIT: aquí está la solicitud de una función que permitirá a Go Instancia manejar más entonces 10 solicitudes simultáneas Allow configurable limit of concurrent requests per instance. Por favor estrella.
Configurar GOMAXPROCS = 1 (eso es lo que hace GAE) solo significa que siempre habrá exactamente un hilo activo que ejecute las rutinas. Es posible que aún tenga un par de hilos bloqueados (no cuentan). También tenga en cuenta que la biblioteca Go usa epoll en segundo plano, por lo que es poco probable que I/O bloquee un hilo completo (pero hay otras formas de bloquear un hilo en Go). Sin embargo, no sé nada sobre el límite general de 10 hilos en GAE. – tux21b
El límite de solicitud concurrente ahora es configurable (hasta un máximo de 80), vea http://stackoverflow.com/a/37364981/943833 – Roganartu