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