Fisier PHP apelat la fiecare secunda

Salutare!
Am un fisier php in interiorul caruia se afla un script ce interogeheaza o baza de date.

Functia care interogheaza baza de date este apelata odata la fiecare secunda, pentru a verifica eventualele schimbari.

Rezultatul functiei este de a face echo unor elemente html (span, ul) ce contin informatii extrase din baza de date. Ex.: echo “”.info_from_database.""

Scopul este ca ulterior o functie JS sa parseze acele elemente HTML si sa prelucreze datele din ele.

Totul functioneaza perfect pana aici, orice modificare a bazei de date face ca DOM-ul HTML sa se modifice, iar o functie JS verifica mereu datele acelor elemente ce s-au modificat.

Ideea este ca o data la 10 incercari, acea functie PHP care face echo “”.info_from_database."", nu mai afiseaza pe DOM “”.info_from_database."" ci afiseaza " " (un spatiu gol).

Intrebarea mea este de ce nu afiseaza ce este sortita sa afiseze?
Mersi!

No idea fara mai mult cod. Ai facut debug query-ului ce esueaza? Iti intoare date dar nu le afiseaza?

In orice caz, faptul ca ai un script ce interogheaza la fiecare secunda baza de date e ingrijorator. Daca scrierile nu sunt rare, load-ul va creste, baza de data iti va intra in overload si unele scrieri sau citiri vor esua.

Nu stiu exact in cel fel de environment ruleaza scriptul dar, ca alternativa, poti sa ai o conexiune de websocket ce emite un eveniment de fiecare data cand se scrie ceva in baza de date cu success si in baza acelui eveniment faci update in html.

3 Likes

Sau mai simplu folosing EventSource:

3 Likes

E total gresita abordarea, tine un socket deschis si comunica prin el, ce rost are sa faci cate un request pe secunda DEGEABA? Daca nu te descurci vezi ca sunt gramezi de pachete deja facute pentru asta si servicii online ieftine/gratis pentru volum mic de date.

Gandeste in termen de evenimente, baza de date poate emite un eveniment sau apela ceva atunci cand se schimba tabela X.

2 Likes

Eventual te poti uita si in log-uri. Asta daca ai logging in acel script.

1 Like