Skip to content
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

Add a timeout to the datalogger web request #660

Merged
merged 2 commits into from Jun 19, 2019

Conversation

helmo
Copy link
Contributor

@helmo helmo commented Jun 18, 2019

Bij recent onderhoud van de host waar dsmr op draait viel het me op dat de datalogger een restart nodig had.

Het toevoegen van deze timeout lijkt daarbij te helpen. De 5 seconden heb ik gekozen als de helft van de 10 seconden telegram interval.

@dennissiemensma
Copy link
Member

Bedankt voor je suggestie! Hoewel het goed in jouw situatie kan werken, denk ik niet dat ik dit zomaar kan doorvoeren.

Ik kan er namelijk niet vanuit gaan dat elke request altijd binnen 5 seconden opgebouwd, verwerkt en teruggeven wordt. Het hangt er erg vanaf waar iemand DSMR-reader host, bijvoorbeeld in Docker, op een andere (trage) Pi of op een VPS extern.

Je bent uiteraard vrij om het script zelf lokaal te kopieren en daar de timeout in te zetten. Het is dan ook meer als een voorbeeld-script bedoeld. :]

@dennissiemensma
Copy link
Member

Voor de duidelijkheid: deze timeout doet niets met de datalogger zelf, maar is puur de API-call naar DSMR-reader zelf. Waar die ook gehost is (kan op dezelfde machine zijn of heel ergens anders).

@dennissiemensma dennissiemensma added this to the Other milestone Jun 18, 2019
@helmo
Copy link
Contributor Author

helmo commented Jun 19, 2019

Maar is een telegram nog nuttig als het meer dan 10 seconden duurt? En daardoor een volgende telegram evt wordt gemist.
Ik had het probleem dat de datalogger uren later nog stond te wachten op een vm die dsmr die al was herstart. Alle telegrammen die in die tijd binnenkwamen zijn genegeerd.

@dennissiemensma
Copy link
Member

Ik heb even uitgezocht hoe het zit. Het was mij onbekend dat er een oneindige timeout op zit, meestal is het standaard zo'n 60 seconden voor web requests.

Ik kan de PR wel doorvoeren als je er 60 van maakt. Ik kan het evt zelf ook nog wijzigen als het veel werk voor je is.

Voor je eigen kopie lokaal kun je uiteraard 5 seconden blijven gebruiken. Voor elke situatie is wel een andere timeout te hanteren, dus ik houd hem dan standaard wat ruim aan, zodat er geen hangende processen meer voorkomen.

@codecov-io
Copy link

Codecov Report

Merging #660 into development will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           development   #660   +/-   ##
==========================================
  Coverage          100%   100%           
==========================================
  Files              109    109           
  Lines             3087   3087           
  Branches           255    255           
==========================================
  Hits              3087   3087

@helmo
Copy link
Contributor Author

helmo commented Jun 19, 2019

60 lost het voor mij ook op :) ... bij deze dus aangepast.
Al vermoed ik dat je dan wel 5 telegrammen op offert om te wachten op eentje...bij 1 per 10 seconden.

@dennissiemensma dennissiemensma merged commit 0b0c4f8 into dsmrreader:development Jun 19, 2019
@dennissiemensma
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants