I have a script I run to deploy 2 web services and a front-end application. The script calls a method that checks to see if the 2 back-end services are up and running. If so, deem the deploy successful, otherwise revert.
The 2 services sometimes take longer than the front-end to start up. Currently I put in a sleep call to delay the web service check. This allows them time to start up.
I want to remove this sleep and add in a retry mechanism so that if a service is down, just retry the check repeatedly until I get a response.
Tp check if the device is up, I use curl. I've read that curl has a retry mechanism but I've never used it.
Have any of you solved this problem before? I want to understand the things I must consider when solving it, e.g. do I retry until i get a HTTP 200 from my service?
Anyone any suggestions how I'd test this? I'd need to find a service that was down.
EDIT: I see that -retry only reacts to transient errors 'Transient error means either: a timeout, an FTP 4xx response code or an HTTP 5xx response code'. My service can return a 404 therefore curl's retry is not my solution.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…