[AJAX / PHP] 1 AJAX call, responses over de tijd verdeeld..

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Luitjes,

De topic titel is niet al te duidelijk. Zal het hier proberen uit te leggen.

Situatie
Er zijn twee servers. Eén database server en één webserver. Tot beide servers is er FTP toegang en op de webserver draaien een xx aantal websites. Die gaan, in de toekomst, zoveel mogelijk data van de database server halen. Worden beide bij dezelfde partij ge-co-host. Op beide servers draait PHP en MySQL.

Er is een Cendris CD (gezipped 40mb, unzipped 1.600mb)met een postcodetabel van ruim 8 miljoen records die ingevoerd moeten worden op de database server. Zoals het nu gaat wordt het gehele bestand via FTP geupload naar de database server en daar wordt via de CLI een script gestart die het bestand uit gaat lezen, zolang deze niet bij EOF is, en wordt er per 50k records een query gemaakt waarmee die 50k records in de database geschoten worden. Als deze klaar is (na ongeveer 15 a 20 minuten) zal dit script een melding geven hoeveel records er in totaal ingevoerd zijn.

Gewenst
Het is de bedoeling om dit proces gebruikersvriendelijker te maken zodat iemand anders dit gemakkelijk kan doen. Nu wil ik een webformuliertje maken waarmee het gezipte bestand geupload kan worden, deze wordt dan op de server uitgepakt en alle records worden doorlopen tot het script wederom bij EOF is. Hier voorzie ik geen problemen, wel bij de feedback bij de gebruiker.

Het record-invoeg-script draait op de database server en bevat een (simpel) while loopje. Per 50k records wordt er dus een query uitgevoerd en gaat ie de while weer in voor de volgende 50k records. Nu wil ik per query een feedback naar de gebruiker sturen. Dit kan zijn of het goed gegaan is of een foutmelding.

Zelf zit ik eraan te denken om iets in elkaar te knutselen met AJAX, maar dit werkt over het algemeen met een request / response idee. Terwijl ik eigenlijk 1 request (uploaden file, uitpakken, runnen script) wil plaatsen en daarop meerdere responsen wil krijgen tot er iets gereturned wordt dat het script (succesvol) is afgerond. Het webformulier zal op de webserver komen te draaien. Op de database server draait geen webserver en kan dus niet bijgekomen worden via een url (of er moet intern iets gemount worden tussen de servers, maar dat lijkt me niet nodig)

Er kan gewerkt worden met een tussen bestandje die met AJAX calls om de "zoveel tijd" uitgelezen wordt. Maar ben op zoek naar een iets directere manier.

Iemand enige suggesties?

[ Voor 4% gewijzigd door Verwijderd op 13-05-2009 11:11 . Reden: Extra info. ]


Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Zoals je zelf al zegt, gewoon pollen via AJAX. Dat is veruit het makkelijkst.

Je kunt ook met Flash of Java een socket openen met aan de andere kant je PHP script, maar dat lijkt me overdreven voor deze toepassing.

TabCinema : NiftySplit