2012-07-01 9 views
10

Conozco las limitaciones de memoria de la plataforma Heroku, y sé que es mucho más escalable separar una aplicación en web y dinners de trabajadores. Sin embargo, todavía me gustaría ejecutar tareas asíncronas junto con el proceso web para fines de prueba. Los dinosaurios son costosos y me gustaría hacer un prototipo en la instancia gratuita que Heroku proporciona.¿Es factible ejecutar múltiples procesos en un banco de pruebas Heroku?

¿Hay algún problema al generar un nuevo trabajo como proceso o subproceso en el mismo proceso que un proceso web?

Respuesta

3

En la pila de Cedar más nueva, no hay problemas con el engendramiento de múltiples procesos. Cada dyno es una máquina virtual y no tiene limitaciones particulares, excepto en el uso de memoria y CPU (aproximadamente 512 MB de memoria, creo, y 1 núcleo de CPU). Siguiendo las instrucciones de instalación más recientes para algunas pilas, como Python, se obtendrá una configuración con múltiples procesos (servidor web) listos para usar.

El software instalado en dynos web puede variar según el buildpack que esté utilizando; Si sus subprocesos necesitan un software especial, puede que tenga que agruparlo con su aplicación o (mejor) rodar su propio buildpack.

En este punto, normalmente le recordaría que se recomienda encarecidamente ejecutar tareas asincrónicas en dinnos de trabajador en lugar de dininas web, con un sistema de cola de tareas adecuado, pero parece que ya lo sabe. Tenga en cuenta que las cuentas con solo un dyno web (típicamente esto significa cuentas "gratuitas") harán que el dyno se desconecte después de una hora o más de no recibir ninguna solicitud web, y que cualquier proceso en segundo plano que se ejecute en el banco de pruebas el tiempo necesariamente será asesinado. Las cuentas con múltiples dinnos web no están sujetas a esta restricción.

+0

Mi solución para el dinamómetro es que uno de los procesos web bloquee atómicamente un objeto de la base de datos, luego verifique si el trabajador se está ejecutando, y si no lo está, inícielo. – okw

Cuestiones relacionadas