10

¿Podemos iniciar un backend dinámico programáticamente? Mientras tanto, cuando se inicia un backend, ¿cómo puedo manejar la solicitud recurriendo a la aplicación (me refiero a app.appspot.com).¿Cómo se inician los backends dinámicos en Google App Engine

Cuando paro un motor manualmente en la consola de administración, y enviar una solicitud a la misma, no es iniciar "dinámica"

Respuesta

4

Backends se documentan muy bien here. Los backends deben iniciarse y detenerse con appcfg o la consola de administración, como se documentó en here. Un servidor final detenido no gestionará las solicitudes: si lo desea, probablemente deba utilizar la cola de tareas.

+0

"un backend detenido no manejará las solicitudes" esto es lo que necesito. los estados de inicio, detención de un backend dinámico que se muestra en la consola de administración no son las representaciones correctas de su estado. solo "inicie" un back-end dinámico en la consola de administración, para que maneje las solicitudes dinámicamente, no le cobrará si no hay solicitudes. – syllogismos

+0

@RemotePath Luego quieres colas de tareas, no backends. Así es exactamente cómo funcionan las colas de tareas. –

+4

Se pueden combinar las colas de tareas y backends como esto: 'taskqueue.add (url = '/ task_url', method = 'GET', target = 'name_of_your_backend'))' La tarea no se ejecutará en dev sin embargo, así que establezca el objetivo en Ninguno en dev: 'taskqueue.add (url = '/ task_url', method = 'GET', target = (Ninguno si const.DEBUG else 'name_of_your_backend'))' Donde DEBUG es igual a 'os.environ ['SERVER_SOFTWARE']. startswith ('Dev')' – crizCraig

5

Los backends dinámicos aparecen cuando reciben una solicitud, y son rechazados cuando están inactivos; son ideales para trabajos que son intermitentes o impulsados ​​por la actividad del usuario.

Los backends residentes se ejecutan de forma continua, lo que le permite confiar en el estado de su memoria a lo largo del tiempo y realizar una inicialización compleja.

http://code.google.com/appengine/docs/python/backends/overview.html

Recientemente he empezado a ejecutar una tarea de larga ejecución en un motor dinámico y notó un aumento dramático en el desempeño de las interfaces. Supongo que esto se debe a que la tarea de larga ejecución compite por los recursos con las solicitudes normales de los usuarios.

+0

"Los backends dinámicos aparecen cuando reciben una solicitud": ¿cómo se envía una solicitud a un back-end? – Keith

+0

Bueno, creo que tienen puntos finales (por lo que recuerdo) como 'backendname.appname.appspot.com'. – crizCraig

1

Parece que un backend dinámico no necesita detenerse explícitamente. Overvicew (http://code.google.com/appengine/docs/python/backends/overview.html) indica que la facturación de un backend dinámico se detiene 15 minutos después de que se procesa la última solicitud. Por lo tanto, si su aplicación tiene un trabajo cron, por ejemplo, que requiere 5 minutos para completarse y debe ejecutarse cada hora, entonces puede configurar un servidor para hacer esto. El costo en el que incurrirá es de 15 + 5 minutos cada hora u 8 horas durante todo el día. Supongo que la cuota gratuita te permite 9 horas de back-end. Entonces, este tipo de escenario sería gratis para usted. El backend se iniciará cuando envíe su primera solicitud a través de una cola, y se detendrá 15 minutos después de que la última solicitud que envíe se procese por completo.