Ho un'applicazione che è un'applicazione di console di parte scritta in C # e un'applicazione web PHP in parte.
L'applicazione della console si connette a più dispositivi seriali e legge i dati relativi all'umidità e alla temperatura in un essiccatore per cereali. [L'applicazione] memorizza quindi le informazioni in un database MySQL.
Il PHP legge il database MySQL e mostra le informazioni all'utente (semplice).
Ho anche scritto uno script PHP per inviare email / sms all'utente se una delle temperature di umidità raggiunge i livelli di allarme (i livelli di allarme vengono letti dal dispositivo e memorizzati nel database MySQL).
Attualmente, inserisco nella pagina PHP ogni "aggiornamento" dal dispositivo (10 secondi) e controllo ogni valore rispetto ai suoi limiti. Se è necessario un allarme, lo invio e aggiorno il database indicando che è stato inviato un allarme.
Questo sembra (pseudo codice)
IF moisture IS GREATER THAN moisture_high_critical_limit THEN
IF moisture_high_critical_alarm_has_been_sent IS FALSE THEN
SEND_ALARM();
moisture_high_critical_alarm_has_been_sent = TRUE;
END IF
ELSE IF moisture IS GREATER THAN moisture_high_warning_limit THEN
IF moisture_high_warning_alarm_has_been_sent IS FALSE THEN
SEND_ALARM();
moisture_high_warning_alarm_has_been_sent = TRUE;
END IF
ELSE IF moisture IS LESS THAN moisture_low_critical_limit THEN
IF moisture_low_critical_alarm_has_been_sent IS FALSE THEN
SEND_ALARM();
moisture_low_critical_alarm_has_been_sent = TRUE;
END IF
ELSE IF moisture IS LESS THAN moisture_low_warning_limit THEN
IF moisture_low_warning_alarm_has_been_sent IS FALSE THEN
SEND_ALARM();
moisture_low_warning_alarm_has_been_sent = TRUE;
END IF
END IF
L'istruzione IF sopra riportata viene ripetuta per tutte le letture di temperatura e umidità dal dispositivo, che possono essere diverse.
Questo tipo di elaborazione dovrebbe verificarsi nella mia applicazione Console? Quindi se è necessaria una notifica di allarme, inviare alla pagina solo per inviare l'e-mail / SMS?
L'elaborazione di queste informazioni nell'applicazione console ridurrà il mio numero totale di handshake con il database MySQL. Ma se il database MySQL è ospitato localmente questo avrà un impatto considerevole?
Finirò il benchmark di entrambi (se sembra che l'elaborazione nell'applicazione console sia in realtà l'approccio giusto), tuttavia c'è un sacco di codice su cui eseguire il porting quindi ho pensato di venire qui e chiedere prima.