2011-09-12 6 views
5

Tengo una aplicación Sinatra que tengo previsto alojar en Heroku.¿Cuáles son las mejores formas de ejecutar un script de Ruby como un subproceso/otro hilo de Sinatra?

Esta aplicación, en parte, raspa mucho de la información de otras páginas de la red y almacena la información en una base de datos. Estas operaciones de descarte son un proceso lento, por lo que necesito que se ejecuten en otro subproceso/proceso separado de mi aplicación Sinatra.

Mi plan es simplemente tener un botón para cada proceso en el que pueda hacer clic y el desguace se realizará en segundo plano.

No estoy seguro de cuál es la mejor manera de hacerlo, complicado por lo que Heroku permitirá.

Respuesta

4

Hay una gema llamada hirefire específicamente para ese:

HireFire automáticamente "contrata" y "fuegos" ("escalas" AKA) Retraso de empleo y los trabajadores Resque en Heroku. Cuando no hay trabajos de cola, HireFire disparará (apagará) a todos los trabajadores. Si hay trabajos en cola, entonces contratará (aumentará) trabajadores. La cantidad de trabajadores que se contratan depende de la cantidad de trabajos en cola (la proporción puede configurarse por usted ). HireFire es ideal para aplicaciones de tráfico alto, medio y bajo . Puede ahorrarle mucho dinero si solo contrata trabajadores cuando hay trabajos pendientes y luego los vuelve a activar una vez que se hayan procesado todos los trabajos . También es capaz de reducir drásticamente el tiempo de procesamiento mediante la contratación automática de más trabajadores cuando aumenta el tamaño de la cola .

+0

Excelente. Gracias. –

Cuestiones relacionadas