2011-06-26 7 views

Respuesta

7

Probablemente debería ver the Heroku devcenter article con respecto a este, ya que la información será más útil, aquí hay un pequeño resumen:

Para responder a la pregunta de tiempo de espera:

Cedar soporta largo sondeos y respuestas de transmisión. Su aplicación tiene una ventana inicial de 30 segundos para responder con un byte único al cliente. Después de enviar cada byte (ya sea recibido del cliente o enviado por su aplicación) restablece una ventana de 55 segundos. Si no se envían datos durante la ventana de 55 segundos, su conexión finalizará.

(. Es decir, si usted tenía cedro en lugar de Aspen o bambú puede enviar un byte cada treinta segundos o así que para engañar el sistema podría funcionar.)

Para responder a su pregunta dinamómetros:

La concurrencia adicional no sirve de nada en absoluto si encuentra tiempos de espera de solicitud. Puede aumentar sus dinas hasta el máximo y aún obtendrá un tiempo de espera de solicitud, ya que es una solicitud única que no se sirve en el tiempo correcto. Los dynos adicionales aumentan su concurrencia, no la velocidad de sus solicitudes.

(Es decir, no se moleste la adición de más dinamómetros.)

En request timeouts: Consulte el código de bucles infinitos, si está haciendo algo grande:

Si es así , debe mover este trabajo pesado a un trabajo en segundo plano que pueda ejecutarse de forma asincrónica desde su solicitud web. Ver Queueing para más detalles.

+0

Gracias por la sugerencia. ¿Cómo puedo enviar un byte cada 30 segundos si la solicitud se está procesando? – donald

+0

@donald Depende de lo que estés haciendo realmente. Tomemos una secuencia factorial recursiva, por ejemplo. Podríamos crear un objeto de tiempo (vamos a llamarlo 'timer'). Luego obtenemos la hora actual del temporizador y le agregamos 25, por 26 segundos antes. Cada vez que ejecutamos la función para calcular el factorial, verificamos si la hora actual es mayor o igual a 'timer'. Si es así, solo envíe un pequeño mensaje al cliente (algo como Todavía cargando ...). Este es un ejemplo muy básico y es difícil decir qué funcionará para ti sin saber exactamente qué quieres hacer. – Arka

+0

Gracias. Tengo una solicitud de seguimiento, me gustaría que me ayuden, por favor: http://stackoverflow.com/questions/6486035/rails-3-return-large-amount-of-data-to-user-via-api – donald

Cuestiones relacionadas