Ho una rete di dispositivi in cui ogni dispositivo ha diversi sensori (temperatura, umidità, ecc.). Ogni dispositivo carica dati meteo misurati grezzi ogni 10 secondi su un'API REST apache / php / mysql. Ci sono alcuni 100 dispositivi che inviano dati e questo diventerà più nel tempo. Attualmente i dati vengono aggiunti a una tabella mysql senza alcuna elaborazione.
Il formato della stringa del messaggio del dispositivo è simile a:
&01AA*020122#
Il che significa che il sensore 01
ha misurato AA
e sensore 02
misurato 0122
.
Voglio mettere i valori esadecimali convertiti decimali in una tabella in modo che possano essere ulteriormente elaborati. Quello che faccio ora è eseguire uno script ogni minuto per vedere quali nuove stringhe sono state aggiunte al database. Quindi convertirò queste stringhe in valori decimali e li inserirò in una tabella.
Per quanto riguarda le prestazioni, ho la sensazione che sondare nuovi dati ogni minuto sia piuttosto sciocco.
Quale sarebbe il modo migliore per farlo?
-
fa in modo che il resto api divida la stringa e converta i valori esadecimali in valori decimali e li inserisca immediatamente nel database
-
esegue il polling del database per le nuove stringhe inserite e converte i valori esadecimali
-
usa un trigger di insert mysql per elaborare la stringa dal database
-
altre idee.