Unreliable execution on service checks

I’m using a custom script to check a docker service registered with Consul.
This check should run every 60s but it’s quite unreliable, range of execution is from 30s to 5 min. I can understand that there can be a difference of some seconds, but this range means is quite random, and I’m unable to diagnose the reason why the agent is not starting the check at regular timing.