Dobrý den, řeším hlídání "nepříchozích" dat. Mám php stránku, která přijímá data pomocí HTTP GET a zapisuje jej do databáze. Data jsou následně vyčítána a vykreslována do grafů. Jednou z funkcí je hlídání mezní hodnoty příchozího čísla, která přes php mail() odešle notifikaci. Teď k otázce: Potřebuji hlídat to, aby když mezi aktuálním časem a časem posledního zápisu uběhne např 10 minut, odešle se stejná notifikace jako u mezních hodnot. Jednoduše řečeno, když nějakou dobu nepřijdou data odešlu mail. A teď jak na to? Stačí jen nasměrovat správným směrem. Díky za odpovědi.
Fórum › PHP
Notifikace nepřijatých dat
Ten popis ani dotaz neni prilis jasny.
Mas aplikaci, ktera uz neco odesila? Jak to dela?
Treba, kdyby to resil javascript, tak v nejakem objektu aktivuje odesli tu a tu notifikaci.
Na pozadi bezi casovac, ktery v intervalu ten objekt (class) kontroluje a kdyz najde neco k odeslani, tak to odesle.
Pokud bys chtel kontrolovat data, tak bys musel napojit objekt notifikaci na prichod dat. Ten by ulozil cas posledni aktualizace pro konkretni stream. Casovac by nekotroloval tru/false odesli tu a tu notifikace, ale cas posledni aktualizace rozdil proti sql NOW(), time() a pokud ten rozdil prekrici nejakou hranici...
Jak rikam, cele to zalezi na tom, jak to mas resene. Do ceho muzes sahat. Kdybys nemohl sledovat primo prichozi data, musel bys je sledovat z povzdali, zvenci, nejakym slesl sql dotazem zkontrolovat v casovem intervalu, ze je v grafu nova hodnota. A ten interval by te omezoval v tom, ze treba se trefis do 3x poslednich vypadku a jindy data prijdou. Proto je lepsi zaznamenat cas posledni zpravy.
Díky všem za odpovědi. Možná jsem předtím zbytečně tajnůstkařil. Jedná se o teploměr. Na vývojové desce ESP8266 s wifi měřím teplotu a pomocí http get odesílám na webserver, kde příslušnou hodnotu zapíšu do databáze. Notifikaci mezní teploty řeším jednoduchou podmínkou když, ta spustí php mail() a odešle mail. Skript s podmínkou se spustí při zápisu teploty. Včera jsem se do toho trošku "položil" a zkusil to rozchodit voláním cron úlohy, tedy php skriptu, který vyčte poslední zápis a aktuální čas, převedu je na unixovou hodnotu, odečtu a když je rozdíl větší jak 10 minut, odešlu pomocí php mail() hlášku na email. Primárně to slouží jako notifikace výměny baterie, jelikož odesílá teplotu každých 60 sekund. Sice je toho řešení funkční, ale pořád mi přijde moc prasácké. S každým dalším čidlem je další cron úloha, aktuálně mám umístěno 7 čidel. Díky.
#7 afteret
hele řešíme ted v práci něco podobného dnes jsem testoval zapojení PAPAGO 2PT/ETH, tak uvidím, jak to bude fungovat, jen je to napájené z POE takže baterie neřeším.
Co se týče cronu, tak pokud to běží na 1 serveru, tak postupně 1 scriptem otestuješ v DB ty jednotlivá čidla na datum a čas posledního záznamu do proměnné si poznamenáš ty čidla, která nekomunikují a po tomna konci, když ta proměnná nebude prázdná pošleš notifikaci se seznamem těch čidel.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Notifikace aplikace o změně dat v tabulce — založil BEZY
Notifikace na email — založil liborb
Android notifikace — založil hráč
Výjimky a notifikace debuggeru — založil tom*p
Notifikace, email a offline editace — založil liborb
Moderátoři diskuze