Avatar billede monkeysee Nybegynder
01. september 2009 - 14:46 Der er 6 kommentarer og
1 løsning

Afbydelse af langvarig POST handling

Jeg har bokset med det flg. problem de seneste dage, og håber at kunne beskrive det nogenlunde fornuftigt:

Jeg har udvklet en apache-baseret php/flash applikation, som er installeret på server A. Applikationen fungerer ved at kalde API funktioner på server B, som desværre er meget langsom til at processere forespørgslerne (vi snakker flere timer) - og jeg kan ikke ændre denne servers konfiguration...

For at undgå en konstant forbindelse ml. klient og server (det forvirrer vores brugere) har jeg afprøvet en række kreative løsninger, men jeg vil gerne have nogle eksperter med til råds.
Ideen er at submitte data fra server A til server B, men afbryde forbindelsen efter få sekunder. Forespørgslen bliver nemlig stadig processeret, der er blot ikke længere nogen klient(browser) til at modtage resultatet- hvilket er helt OK.

Jeg har prøvet at submitte data til serveren i en indlejret side (IFRAME), og bruge meta-refresh eller location.replace til at erstatte adressen med en nautral side. Denne løsning virker dog ikke efter hensigten, javascript funktioner er ikke aktive og adressen kan derfor ikke ændres under "page load". Det næste jeg vil forsøge involverer et pop-up vindue som bliver lukket, men jeg er nok lidt skeptisk med hensyn til hvor godt det kommer til at fungere.

Ethvert forslag til hvordan jeg kan afbryde denne submit er meget velkomment :-)
Avatar billede arne_v Ekspert
02. september 2009 - 02:14 #1
HTTP er ikke den rette protokol for den slags.

Lad web siden på server A smide et job i en message queue som side B så processer.
Avatar billede monkeysee Nybegynder
02. september 2009 - 12:17 #2
Tak for tippet!

Så jeg bør altså installere en message-queue på server A, som i "baggrunden" (asynkront) kan håndtere de langvarige forespørgsler? Da jeg som nævnt ikke har indflydelse på opsætningen af server B...

Ved en hurtig tur ud på google fandt jeg frem til to PHP-baserede message-queue systemer: dropr og beanstalk. Beanstalk virker lovende, er der nogen af disse som kan anbefales?
Avatar billede arne_v Ekspert
02. september 2009 - 17:29 #3
Jeg kender ikke beanstalkd.

Jeg kender ActiveMQ.
Avatar billede monkeysee Nybegynder
03. september 2009 - 14:57 #4
ActiveMQ er ganske imponerende. Jeg begynder at forstå at dette emne er ret så stort, tak for at guide mig i den rigtige retning :-)
Avatar billede arne_v Ekspert
03. september 2009 - 18:09 #5
ActiveMQ er en ok message queue - og den er ret suveraen med hensyn til client libs og understoettede sprog.
Avatar billede monkeysee Nybegynder
04. september 2009 - 21:50 #6
Lige præcis! Det er kombatibilitet som er i højsædet her...

Vil du have point for svar (det er det i min bog) ?
Ellers accepterer jeg mit eget indlæg :-)
Avatar billede arne_v Ekspert
04. september 2009 - 21:59 #7
gerne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester