-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Utilisation de l'API HYDRAO #2
Comments
Bonjour, Pas de problème, je vais m'arranger pour distribuer les appels aléatoirement, cela n'est pas très compliqué à faire et en réalité c'est quelque chose que je surveillais et que j'étais déjà prêt à faire si nécessaire mais je doute que ce code soit réellement la cause de la surcharge sur vos serveurs. Quand à la limite, pouvez-vous préciser à partir de quand cela sera appliquée? |
Bonjour, Effectivement, il s'agit de 62 utilisateurs. Mais ces 62 utilisateurs font jusqu'à 25 requête HTTP par heure, ce qui nous fait donc de l'ordre de 1500 requêtes simultanées chaque heure, ce qui se traduit par encore plus de requêtes SQL sur notre base. Par exemple l'API "userStats" effectue plusieurs requêtes, certaines assez gourmandes. Il n'y a aucun doute que ce plugin soit effectivement à l'origine ne notre surcharge serveur. Nos bases de données sont en autoscaling, mais ce pic horaire est tellement soudain que les bases n'ont pas le temps de se mettre à niveau. Du coup on a des erreurs de type "too many connection" sur les requêtes. Nous sommes en train de passer à un système plus robuste d'autoscaling, et nous allons optimiser au maximum les webservices, mais en attendant, nous sommes obligés de prendre des mesures pour pas que tout les utilisateurs soit impactés. Après réflexion, nous avons changé pour des limites qui nous semble plus pertinentes :
Cela permet que chaque utilisateur du plugin ai au moins deux mise à jour qui fonctionne par jour. Pour optimiser le nombre de requêtes faites à l'API, hormis le cache je vous conseil de vous baser sur la propriété "last_seen" des pommeaux. En effet, cela permet de savoir si il y a eu une activité récente sur le compte, et ainsi appeler les webservice qu'en cas de mise à jour récente. Les limites sont déjà en place sur l'API. Désolé pour tout ces changements un peu soudains... |
50 requêtes par jour ! C'est drastique comme changement...
Alors qu'il me semble que je vous immédiatement répondu que j'allais
coopérer pour aider à diminuer la charge.
Étant moi même client puisque j'ai aussi acheté ce pommeau je suis vraiment
mécontent. Des limites si contraignantes mises en places sans aucun
préavis... je ne vous remercie pas.
Je ne manquerai pas de signaler ces nouvelles limites aux utilisateurs de
jeedom.
Une chose est assez sûr, vous n'aurez plus "trop" de nouveaux clients qui
auront découvert vos produits via le plugin et donc moins d'ennuis à
l'avenir car qui dit moins de clients dit moins de requêtes sur vos
serveurs et ils fonctionneront parfaitement.
|
Bonjour,
Je suis Denis, développeur chez HYDRAO.
Tout d'abord, merci d'avoir développé ce plugin, c'est toujours un plaisir de voir les utilisateurs s'approprier nos produits :)
J'en viens à la raison de mon message ici : Nous avons constaté sur nos serveurs un pic de requêtes toutes les heures, ce qui provoque un pic de charge sur nos serveurs.
Après investigation, et après avoir regardé le code source du plugin, je pense que le plugin est responsable de ce pic de charge : En effet, les appels à l'API se font sur un cron, toutes les heures, pour tout les utilisateurs.
Pouvez vous ajouter un délai d'attente aléatoire afin de répartir la charge sur nos serveurs? Sans cela, nous allons être obligés de révoquer les clés API utilisant ce plugin, les pics de charge devenant vraiment trop importants.
D'autre part, la popularité de ce plugin augmentant, le nombre de requêtes aussi.
Aussi afin d'éviter d'impacter les autres utilisateurs, nous avons réajusté les limites sur l'API. Chaque clé API est maintenant limitée à 10000 requête par mois. Nous observons actuellement plus de 500 requetes par jour et par personnes sur l'API, donc cette limite risque d'être atteinte avant la fin du mois pour la plupart des utilisateurs de ce plugin.
Il est possible de radicalement baisser le nombre de requete à l'API, entre autres en utilisant un cache et en gardant dans une base locale les objets peu susceptibles de changer (user, showerhead, ...)
Merci et bon weekend !
The text was updated successfully, but these errors were encountered: