2009-12-18 9 views
5

Ho un sito web apache2/mod_perl. Su una pagina, ho bisogno di fare alcune comunicazioni server/server tramite SOAP.Come posso rinviare l'elaborazione durante il rendering della pagina apache/mod_perl?

I risultati di questa comunicazione non sono necessari per il rendering della pagina (ma l'input dell'utente è necessario per attivare questa comunicazione).

La comunicazione SOAP è molto lenta.

Quindi, quello che voglio fare è elaborare e stampare la pagina per l'utente, quindi fare tutto il materiale SOAP dietro le quinte.

Qual è il modo migliore per raggiungere questo obiettivo? iniziare qualche forchetta? scrivi il lavoro su un file e chiedi a un cronjob di prenderlo?

Grazie

risposta

7

Ci sono due tipi di soluzioni: in primo luogo si può fare quello Randal Schwartz ha suggerito here. In secondo luogo è possibile utilizzare una coda di messaggi come Beanstalk o Gearman. Beanstalk ha un client Perl ed è ora persistente ed è ideale per cose leggere. Gearman d'altra parte ha più funzioni, più lavorato. C'è anche TheSchwartz - usalo se puoi fare a meno di troppa documentazione. cron è l'ideale per ripetere sistematicamente le attività. Per il tipo di applicazione che hai, sembra che Schedule::At potrebbe essere più appropriato se si preferisce un più generico "messaggio-coda"

vedere anche un vecchio thread StackOverflow here

Problemi correlati