YunoHost-Apps / aeneria_ynh

æneria package for YunoHost
GNU Affero General Public License v3.0
11 stars 2 forks source link

Quota Q3 Reached - victime de son succès ! #31

Closed Jaxom99 closed 1 year ago

Jaxom99 commented 1 year ago

Bonjour Simon, Merci pour cette super appli, elle tourne toujours bien chez moi, mais j'ai des messages d'erreur récurrents. (ils sont envoyés par mail à aeneria@[mondomaine] du coup je me suis ajouté un alias mail pour les recevoir.)

Voilà, ma petite contribution de remontée de bugs. Rien de bloquant et rien d'urgent, je te souhaite de bonnes fêtes et je reste disponible si tu veux réparer ça dans un temps futur :wink:

SimonMellerin commented 1 year ago

Bonjour,

Arf !

Je vais commencer par le 2e point : peut-être que quand on cherche des données pour la veille un peu trop top dans la journée, celles-ci ne sont pas encore dispo côté Enedis, d'où le message d'erreur. Il serait intéressant de connaître l'heure d'arrivée des données. Mais on peut dire qu'on peut ignorer ces erreurs pour le moment.

Pour le premier point :

Peut-être qu'il est temps de mieux prendre en compte ce qui avait été soulevé dans l'issue #12.

Une idée d'amélioration : aujourd'hui, l'ensemble des flux n'ont des nouvelles données que quotidiennement.

Parant de ce constant on pourrait effectivement ralentir le job cron, disons, toutes les 3h. Ensuite, on pourrait essayer de randomiser l'heure de lancement du cron à l'installation par yunohost pour éviter des pics de charge sur le proxy.

Je crois que le quota correspond à un nombre d'appels par heure. On devrait pouvoir s'en sortir comme ça (au moins pendant un certain temps !)

J'imagine qu'on pourrait avoir quelque chose comme : __MINUTES__ __HOUR__/3 * * * __APP__ /usr/bin/php__PHPVERSION__ __FINALPATH__/bin/console aeneria:fetch-data

Je ne suis pas un pro du bash, actuellement le cron est paramétré comme suit dans le script d'installation :

ynh_add_config --template="../conf/aeneria.cron" --destination="/etc/cron.d/$app"
chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app"

Quelqu'un pourrait m'aider à faire ce qui est décrit au dessus ?

tituspijean commented 1 year ago

@SimonMellerin je peux regarder ça.

J'imagine qu'on pourrait avoir quelque chose comme : __MINUTES__ __HOUR__/3 * * * __APP__ /usr/bin/php__PHPVERSION__ __FINALPATH__/bin/console aeneria:fetch-data

Je ne suis pas un expert du tout en cron, mais si tu veux toutes les $hour heures, le format n'est-il pas plutôt */__HOUR__?

SimonMellerin commented 1 year ago

Je voudrais toutes les 3 heures, mais avec une heure de départ aléatoire.

De cette manière,

Comme ça on répartit bien les appels sur la journée

Jaxom99 commented 1 year ago

L'information sur le format du cron est ici : https://www.man7.org/linux/man-pages/man5/crontab.5.html

Donc en effet, toutes les 3 heures c'est */3. Mais je ne sais pas si on peut indiquer un départ aléatoire. Sinon en demandant un range avec- et un début variable : __HOUR__-23/3 Pour la minute random, on peut aussi utiliser 0~59 ce qui évite un paramètre ynh.

On est pas loin du but :smile_cat:

tituspijean commented 1 year ago

Sinon en demandant un range avec - et un début variable : __HOUR__-23/3

yep, je suis parti sur ça, je suis en train de tester le fix sur mon serveur. 🤞

tituspijean commented 1 year ago
$ cat /etc/cron.d/aeneria
18 1-23/3 * * * aeneria /usr/bin/php7.4 /var/www/aeneria/bin/console aeneria:fetch-data

Cela me semble bon ! A vos tests. :)