Preluare date în timp real dintr-un document
Last Updated: Jun 25 2014 22:25, Started by
Ivy2007
, Jun 25 2014 17:56
·
0

#1
Posted 25 June 2014 - 17:56

Salutare,
Am un document (.txt) care se actualizează în timp real. Vreau să preiau datele din fişierul respectiv (tot în timp real sau la un delay de 3-5 secunde) şi să le introduc într-o bază de date (mysql). Ce tehnologie sau script să folosesc pentru asta? Mulţumesc. Edited by Ivy2007, 25 June 2014 - 18:00. |
#3
Posted 25 June 2014 - 18:05

C/C++ & API-ul sistemului de operare te anunta despre schimbarile aparute. Iar acestea pot fi incluse intr-un .dll/.so in orice alta tehnologie.
|
#4
Posted 25 June 2014 - 18:17

cron e varianta simpla, dar presupune un delay. Folosirea API-ului OS-ului e varianta eleganta de solutionare a problemei. Totusi esti sigur ca esti nevoit sa citesti fisierul ala si nu poti prelua direct datele de la programul care-ti scrie fisierul text. Nu de alta, dar scopul HDD-ului e pentru stocare, iar tu vrei sa stochezi date doar pentru cateva secunde, iar asta e un bottleneck foarte serios.
|
#5
Posted 25 June 2014 - 18:36

Daca discutia se poarta sub Linux, cred ca poti si cu "tail -f" a carui iesire o redirectionezi catre un script care se ocupa de partea de mySQL. Necesita cateva artificii, dar nu ar trebui sa fie imposibil. De asemenea, pentru rapiditate, poti folosi un ramdisk pe care sa tii fisierul text.
|
#6
Posted 25 June 2014 - 18:48

Am tras un ochi prin PHP, Java si .NET si toate au monitorizarea fisierelor/directoarelor inclusa in tehnologia aditionala.
|
#7
Posted 25 June 2014 - 18:58

Eu am un link de forma http://domeniu.com/?...&template=text. Linkul acesta mă redirecţionează către un document .txt (de forma domeniu.com/info/info.txt) care conţine informaţii despre utilizatorul în cauză.Eu vreau să iau acele informaţii şi să le introduc într-o bază de date mysql printr-un script php în timp real. Aş mai avea o problema la colectarea datelor pentru că nu le pot lua cu file_get_contents din cauza redirecţionării respective.
|
#8
Posted 25 June 2014 - 20:55

Pai cu detaliul asta trebuia sa incepi, fiindca schimba mult datele problemei.
|
#9
Posted 25 June 2014 - 21:21

Am găsit o soluţie. Iau locatia cu get_headers şi găsesc calea către fişierul .txt. Acum a apărut o nouă problemă. Pe lângă faptul că executarea scriptului durează foarte mult, îmi actualizează în baza de date doar primii 660 de utilizatori,( iar eu am 7000 (doar pentru probe, în realitate vor fi peste 100.000)....Mă gândesc că este o limitare a mysql-ului la pachetul meu de hosting. Mă însel?
Edited by Ivy2007, 25 June 2014 - 21:22. |
#10
Posted 25 June 2014 - 21:44

$select=mysql_query("SELECT * FROM `baza`"); while($rand = mysql_fetch_array($select)) { $titlu=$rand['user']; $url = 'http://www.site.com/online_status/?user='.$titlu.'&template=text'; $id=$rand['id']; $headers = get_headers($url,1); $locatie=$headers["Location"]; //$update="UPDATE `baza` set ti='$locatie' WHERE id='$id'"; //mysql_query($update); echo $nr; echo ''.$titlu.''; print_r ($locatie); echo '<br/>';cam aşa arată codul. dacă adaug în while $status=file_get_contents($locatie); pentru a vedea conţinutul fişierului îmi afişează 500 internal error. |
|
#11
Posted 25 June 2014 - 22:16

Sa fiu sigur ca am inteles: pentru 100.000 de useri tu vrei sa descarci un fisier text de pe alt site, non-stop?
Una din marile limitari ale hostingului e ca scripturile alea php au un timp maxim de executie, gen 30 sec. |
#12
Posted 25 June 2014 - 22:25

Am pus un limit la interogarea de sql şi merge cum trebuie. Nu a fost ideea mea...scriptul acesta va rula pe un server dedicat.
Edited by Ivy2007, 25 June 2014 - 22:26. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users