jeg sidder nuværende og arbejder på en funktion: at automatisk indeksere csv filer som jeg får fra et ekstern system i en mappe, som skal automatisk blive loadet ind i en mysql database. dvs at hver gang en ny fil bliver smidt ind i en given mappe, at den automatisk bliver loadet ned i databasen.
jeg har allerede fået det til at virke med en specifik csv fil med data. Problemstillingen ligger i at der kommer til at være mange csv filer og systemet skal kunne skelne mellem dem, så for hver gang der kommer en ny, loade dem ind i databasen, sådan at jeg ikke skal bruge de csv filer hver gang, men at have dataen i en mysql database som jeg bedre kan bearbejde.
Håber der er nogen som har nogle ideer til dette :)
Jeg tror det er lettest at lave som et php script. Spørgsmålet er så hvad der skal udløse at mappen kigges igennem - svaret afhænger af behovet. Er det nok blot at 'requeste en url' i browseren efter behov eller ønskes der en mere automatisk kørende opdatering?
Hvis ja, ville jeg skrive et program i java eller c++ der gjorde det samme - gentagende http requestet skrevet i php eller arbejdende direkte op mod mysql. Den forkromede løsning er en windows service
Man kunne prøve et lille hack (og se hvor meget det belaster systemmet) - smid følgende 1 linies bat fil:
wget -q <phpscript url>
i windows opgavestyring, sættende det til at gentages med ønsket interval. wget er et program der henter en side ned som fil - er open source - kan findes på nettet.
---------
I øvrigt interessant at erfare at der nu findes en samlet pakke til windows i form af XAMPP
ja jeg tænker også på at lave en php fil som læser alle filer i specifieret mappe, derefter tager den nyeste fil, og smider det ind MySQL. evt. en session timer på denne funktion ?
Synes godt om
Slettet bruger
01. januar 2010 - 18:43#5
En session timer - hvad er det? er det ikke blot forlængelse af en sessions udløbstid? Jeg mener ikke man kan lave et program i php webserver sammenhæng, der kører hele tiden - eller måske, men det, IMHO noget mærkeligt noget. En server svarer og laver ellers ikke andet end vente på ny forespørgsel. Man kan godt lave en php side der retunerer noget javascript som så står og fyrer requests af (opdatering af side) - det skal så manulet startes i browseren og siden må ikke lukkes = dårlig løsning!
Hvorfor ikke udføre det 'on demand' - samle det hele i en php funktion og udføre denne i alle de sammenhænge hvor du vil anvende resultatet.
Synes godt om
Slettet bruger
01. januar 2010 - 19:17#6
tilføjelse til #5: Hvis man har noget funktionalitet som evt. tager lidt længere tid en det er hensigtsmæssigt at vente på et webside svar, kan man afslutte med:
register_shutdown_function('<php function>');
... og på den hacke sig til det jeg advarede imod! Man skal sørge for at <php function> kun kan kører i en tråd - altså en applikation scope og mutex beskyttet variabel der testes på, som det første, for at se om det er første kald. I princippet er det udefineret hvad der sker når webserveren lukker ned, med mindre man er i stand til at lytte med på de signaler som lukker den ned - aner ikke om man kan det i php! Endeligt ville det nok ikke være populært på en rigtig webserver der har mange virtual host
signalerer ikke andet end at spytte en csv fil i en mappe, 1 gang i døgnet :)
Synes godt om
Ny brugerNybegynder
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.