Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Automatyczne pobieranie "nowych" danych
Forum PHP.pl > Forum > Bazy danych > MySQL
phpmack
Witam
Mam następującą sytuacje:
Do bazy wrzucam sobie dane z uradzeń mobilnych za pośrednictwem "mini servera" który działa w tle i w przypadku odebrania danych z urządzenia zapisuje je do bazy. Teraz tworze stronę kliencką która będzie służyła do prezentacji tych danych w czasie rzeczywistym. I w tym momencie natknąłem się na dość poważny problem - w jaki sposób sprawdzać czy w bazie danych pojawiły się nowe dane? Czy istnieje jakiś bardzie inteligentny mechanizm niż młóceniem w pętli zapytań do db co 5 sec?? Dane będą spływały asynchronicznie czasami co 30s a niekiedy raz dziennie...
croc
Możesz na przykład przy każdym wpisie czegoś do bazy nadpisywać wartość pliku tekstowego, wpisując np. aktualny czas. "Sprawdzarka" patrzyłaby na zawartość tego pliku co co X sekund i wykonywała zapytania tylko wtedy, gdy zawartość tego pliku różni się od tej, którą odebrała ostatnio.
lessi
Robiłem niedawno shoutboxa co 1 s przeglądarka wysyłała jedną zmienną, a mianowicie ostatni identyfikator. Serwer porównywał czy ktoś dodał nowy post. Jeżeli tak to zwracał wszystkie większe od wysłanego identyfikatora. Wykorzystałem do tego JSON w jQuery. Oczywiście im większy czas wstawisz tym mniejsze obciążenie. Przy 1s u mnie na localhoscie otrzymywałem wynik w ok 8ms.
phpmack
Czyli rozumie że sama baza nie zapewnia takiej funkcjonalności? w mssql jest coś takiego jak "zapytanie zwrotne" - nie pamiętam dokładnie jak to się nazywało ale działa na tej zasadzie że wysyłamy zapytanie do bazy (np. czy pojawił się nowy wpis) a baza odpowiada dopiero po spełnieniu warunku...

A trigery? procedury? nie da się tego wykorzystać w żaden sposób aby informowanie o nowym raporcie generowała sama baza?
lub jeśli już php musi cyklicznie odpytywać o nowy raport to może da się indeks czy też czas ostatniego raportu trzymać w jakiejś zmiennej zamiast korzystać z plików pośredniczących?questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.