Notifikace nepřijatých dat – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Notifikace nepřijatých dat – PHP – Fórum – Programujte.comNotifikace nepřijatých dat – PHP – Fórum – Programujte.com

 

afteret0
Duch
14. 1. 2020   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 193.85.247.–
peter
~ Anonymní uživatel
4014 příspěvků
14. 1. 2020   #2
-
0
-

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.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
MilanL+1
Grafoman
14. 1. 2020   #3
-
0
-

#2 peter
já myslím že to chce na straně serveru, tudíž vytáhnou datum a čas posledního uloženého záznamu a porovnat s příchozím, při více vstupech samozřejmě podle identifikace vstupu,

Nahlásit jako SPAM
IP: 185.112.167.–
Kit+15
Guru
14. 1. 2020   #4
-
0
-

#1 afteret
Chce to další proces na serveru, který bude mít v cyklu `sleep 10m` a bude mít trap na signál, který ho vrátí na začátek. Když čačas uplyne, pošle e-mail.

Nahlásit jako SPAM
IP: 46.135.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
afteret
~ Anonymní uživatel
3 příspěvky
15. 1. 2020   #5
-
0
-

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.

Nahlásit jako SPAM
IP: 193.85.247.–
MilanL+1
Grafoman
15. 1. 2020   #6
-
+1
-
Zajímavé

#5 afteret
stačí ti 1 cron, všechna čidla obsloužíš v jednom scriptu.

Osobně bych tu komunikaci a sledování stavu baterie řešil asi trošku jinak.

Nahlásit jako SPAM
IP: 91.139.9.–
afteret0
Duch
15. 1. 2020   #7
-
0
-

#6 MilanL
Díky, můžete to trošku rozvést? Osobně s php nemám extra zkušenosti, pracuji jako Cčkař a web s teplotama byla taková první "zkušenost"

Nahlásit jako SPAM
IP: 193.85.247.–
MilanL+1
Grafoman
17. 1. 2020   #8
-
0
-

#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.

Nahlásit jako SPAM
IP: 185.112.167.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 48 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý