Recuperer info. par UDP pour etre affichée sur du HTML [Web] - Divers - Programmation
Marsh Posté le 27-05-2012 à 17:58:20
Citation : j’enregistre le fichier au format texte, c'est bon? faudrait faire une base SQL ? |
ça dépend à quel point tes données sont critiques, ça, non?
A+,
Marsh Posté le 27-05-2012 à 18:06:30
heu,
je conserve le fichier texte ou je fais une base SQL?
Pour la base SQL, comment la purger régulièrement (de façon automatique) ?
Marsh Posté le 27-05-2012 à 18:14:24
ilco a écrit : heu, |
Je suis pas spécialiste, mais s'il y a pas des commandes ad-hoc, au pire, tu enregistres la date dans ton enregistrement, et pour effacer, tu sélectionne les enregistrements dont la date stockée est inférieure a celle de ta limite de 3 semaines, et tu les efface (plein d'exemples sous google montrant cela).
Mais bon, sinon, tu peux aussi juste sauver cela dans des fichiers de logs, et il y a en perl (puisque tu utilises perl) des modules pour virer les logs anciens.
A+,
Marsh Posté le 27-05-2012 à 18:28:33
ok merci donc je vais rester sur les fichiers textes puisque çà se fait
Marsh Posté le 27-05-2012 à 21:02:12
Comme je t'ai dit, si la perte des logs suite a un crash disque est acceptable, alors utiliser des fichiers de logs est une solution tout a fait envisageable et facile à mettre en oeuvre.
Par contre, si la sauvegarde des données enregistrées est critique, alors il faut une solution plus élaborée.
A+,
Marsh Posté le 27-05-2012 à 21:45:04
pas très grave la perte c'est pour ma piscine... et de toute façon le disque est en raid1...
par contre c'est vrai que çà m’intéresserai de savoir comment çà se fait "dans les règles de l'art"!
Marsh Posté le 30-03-2013 à 12:30:20
rebonjour,
j'avais un peu laissé tomber le projet mais je m'y remet.
Donc j'ai bien mon fichier texte avec toutes les données.
Par contre le problème c'est que ce fichier est quasiment en permanence ouvert (récupération d'informations toutes les secondes par exemple). Je crois savoir que lorsqu'un fichier est ouvert par le script perl, on ne peut (doit?) pas le lire tant qu'il n'est pas fermé.
Est-ce que finalement l'idée du fichier texte est une bonne idée, vu que la page est susceptible a tout moment d'interroger (de lire) le fichier, qui a une chance non négligeable d'être ouvert. Quelles sont les autres possibilités ?
merci pour votre aide.
Marsh Posté le 27-05-2012 à 17:31:44
Salut,
Je ne sais pas si mon titre est clair, mais je vais détailler ici.
J'ai un convertisseur RS232 vers Wifi, connecté a un automate programmable via liaison série. L'automate programmable envoie des données (ex. la température) sur son port série lorsqu'il reçoit une certaine commande (c'est de l'hexa, mais disons qu'on lui dit envoie moi les données de telle plage a telle plage).
Je veux ensuite afficher cette température et son historique sur une page html. Tout ça j'ai déjà réussi a le faire de la façon suivante :
Le module RS232 a un serveur web interne, du coup je faisais une demande AJAX "envoie moi les données" toutes les secondes puis je les récupérai sans problème. Le seul hic, c'est que si il y a 5 personnes en même temps sur la page, elles vont faire plein de demandes AJAX, ce qui évidement sature le pauvre STM32 qui sert de serveur web... Sans compter que çà ralenti aussi le fonctionnement de l'automate qui doit faire tourner son programme de supervision (il n'a pas que çà a faire d'envoyer sur le port serie).
Du coup je pensai me servir du mode UDP du module RS232, et d'utiliser mon Synology comme serveur web. Un petit script perl ouvrant un socket UDP(déjà fait) fait une demande toutes les secondes au module RS232, récupère les données et les stocke dans un fichier. Du coup la page HTML interroge le Synology autant qu'elle veut, sans saturer mon automate et mon convertisseur.
Seulement, comment faire çà dans les règles de l'art. Plus particulièrement, j’enregistre le fichier au format texte, c'est bon? faudrait faire une base SQL ? Je veux purger ce fichier (pour éviter d'avoir 3 mois d’historique) toutes les semaines, quelle est la meilleure solution?
merci pour votre aide