每当用户在我的系统上进行搜索时,我有一个系统需要向外部系统发送请求。
如果外部系统出现故障或需要很长时间才能回答,我希望我的系统“退出”一段时间。我不想尝试向外部系统发出更多请求,我只想让我的系统用户立即知道我们目前不会处理他们的请求。
这将为用户带来更好的体验(不必等待超时),减少我系统中的资源使用(线程不会忙于等待来自外部系统的无响应或超时),并且可以节省外部系统。(在它可能已经在努力应对负载的情况下)
一段时间后,或者当我的系统发现外部系统再次响应时,我想再次恢复正常行为。
有没有做这种事情的模式或标准方法?特别是跟踪超时/长请求的机制,以及我们应该何时开始重试的某种控制机制。