Comments (4)
Thanks, that's a good idea, added the Retry-After header for 429 responses.
from healthchecks.
Thanks for the suggestion! The UUID URLs on the hosted service have been returning HTTP 200 from the start, and I don't think I can change that behavior now, this would risk breaking existing setups.
When I was implementing slug URLs, I changed the logic to also return 404 and 429 status codes. No-one was using the slug URLs yet, so there was no problem changing the behavior.
I had a quick look at favonia/cloudflare-ddns#239. The HTTP client would not retry HTTP 200 status codes, but perhaps that's not a huge problem?
- If a check with a particular UUID does not exist, there's no point retrying it – it is unlikely to come into existence on retry
- If the HTTP client hits a rate limit, this means the client is pinging too often. It should ping less often instead of retrying even more!
(though I agree, it would be better to return 404 and 429, so the client knows what's up and can make intelligent decisions, instead of returning 200 and tricking client into thinking everything's OK)
from healthchecks.
@cuu508 Thanks for checking all of these. You are absolutely right. It was my perfectionism preventing the (practical) unification of all retry logic. For the code 429 though, have you considered sending a Retry-After HTTP header? This should prevent (good) clients from pinging too much.
from healthchecks.
I am closing this because there are no more actionable items. I took your advice and refactored my code. Thank you again for your time.
from healthchecks.
Related Issues (20)
- Support FAIL, not just DOWN, in email subject line HOT 3
- Does cron syntex in healthchecks support the SECOND field? HOT 1
- Make Period and Grace time minutes/hours/days clickable
- Option to show time of last ping instead of time duration since last ping HOT 2
- Feature request: support additional PostgreSQL DB SSL parameters via environment variables HOT 1
- C#/.NET API Wrapper HOT 1
- Allowed hours for running Simple checks HOT 2
- ilert integration
- Cannot create a Signal integration due to Signal rate-limiting HOT 1
- Feature requests: Markdown Descriptions and Search by Slug HOT 1
- Webhook should accept $SLUG as a placeholder HOT 1
- Gettin AttributeError on admin from latest master version HOT 4
- Container unhealthy after update to 3.5.1 - not working anymore HOT 10
- Website Login doesn't play well with password managers HOT 1
- ERROR: Too many open files HOT 8
- [Django] ERROR (EXTERNAL IP): Internal Server Error... HOT 5
- NTFY Integration Sends plain JSON instead of formatted Notification HOT 5
- Is there any auth log for failed logins?
- Adding Elestio as deployment option
- [Feature] Global dark mode - prior to logging in?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from healthchecks.