2009-12-18 9 views
5

Tengo un sitio web apache2/mod_perl. En una página, necesito hacer alguna comunicación servidor/servidor a través de SOAP.¿Cómo puedo aplazar el procesamiento durante la renderización de la página apache/mod_perl?

Los resultados de esta comunicación no son necesarios para la representación de la página (pero se requiere la intervención del usuario para activar esta comunicación).

La comunicación SOAP es muy lenta.

Entonces, lo que quiero hacer es procesar e imprimir la página para el usuario, luego hacer todo el trabajo de SOAP detrás de escena.

¿Cuál es la mejor manera de lograrlo? comenzar un tenedor? escribir el trabajo en un archivo y tener un cronjob recogerlo?

Gracias

Respuesta

7

Hay dos tipos de soluciones: En primer lugar usted puede hacer lo que Randal Schwartz sugirió here. En segundo lugar, podría usar Message Queue como Beanstalk o Gearman. Beanstalk tiene un cliente Perl y ahora es persistente y es ideal para cosas ligeras. Gearman por otro lado tiene más características, más trabajado. También existe el TheSchwartz. Úselo si puede prescindir de demasiada documentación. cron es ideal para repetir tareas sistemáticamente. Para el tipo de aplicación que tiene, parece que Schedule::At podría ser más apropiado si usted prefiere una más genérico "mensaje-cola"

también ver a un viejo hilo StackOverflow here

Cuestiones relacionadas