2009-12-18 5 views
5

Ich habe eine apache2/mod_perl-Website. Auf einer Seite muss ich eine Server/Server-Kommunikation über SOAP machen.Wie kann ich die Verarbeitung während des Apache/Mod_perl-Seitenrenderings verzögern?

Die Ergebnisse dieser Kommunikation sind für das Rendern der Seite nicht erforderlich (es ist jedoch eine Benutzereingabe erforderlich, um diese Kommunikation auszulösen).

Die SOAP-Kommunikation ist sehr langsam.

Also was ich tun möchte, ist die Seite für den Benutzer zu verarbeiten und zu drucken, dann machen Sie den ganzen SOAP-Zeug hinter den Kulissen.

Was ist der beste Weg, dies zu erreichen? etwas Gabel anfangen? den Job in eine Datei schreiben und einen Cronjob abholen lassen?

Dank

Antwort

7

Es gibt zwei Arten von Lösungen: Erstens können Sie tun, was Randal Schwartz here vorgeschlagen. Zweitens könnten Sie eine Nachrichtenwarteschlange wie Beanstalk oder Gearman verwenden. Beanstalk hat einen Perl Client und ist jetzt persistent und ist ideal für leichte Sachen. Gearman auf der anderen Seite hat mehr Funktionen, an denen mehr gearbeitet wurde. Es gibt auch TheSchwartz - verwenden Sie es, wenn Sie auf zu viel Dokumentation verzichten können. cron ist ideal für die systematische Wiederholung von Aufgaben. Für die Art der Anwendung, die Sie haben, scheint es, dass Schedule::At könnte besser geeignet sein, wenn Sie eine allgemeinere „Message-Queue“ bevorzugen

Auch ein altes Thema here Stackoverflow

sehen
Verwandte Themen