Jus*_*tch 7 c# throttling httpwebrequest
我正在开发一个从第三方网站检索信息的类库.如果在设定的时间段(~0.5秒)内发出太多请求,则正在访问的网站将停止响应.
我的库的公共方法直接与Web服务器上的文件资源相关.换句话说,每次调用方法时,HttpWebRequest都会创建一个并将其发送到服务器.如果一切顺利,则会将XML文件返回给调用者.但是,如果这是小于0.5秒的第二个Web请求,则请求将超时.
我的困境在于我应该如何处理请求限制(如果有的话).显然,我不希望呼叫者坐在那里等待响应 - 特别是如果我完全确定他们的请求会超时.
我的库是否更有意义对我创建的Web请求进行排队和限制,或者如果客户端在API调用之间没有等待足够长的时间,我的库是否应该抛出异常?
库的概念是尽可能少地为客户端代码提供担忧.因此,我会使库成为排队请求并及时返回结果的工作.在理想的世界中,您将使用回调或委托模型,以便客户端代码可以异步操作,而不是阻止UI.您还可以提供跳过队列的选项(如果操作太快则失败),甚至可能在队列模型中提供优先级.
我还认为图书馆作者有责任默认成为一个好公民,并且图书馆的默认操作是遵守数据提供者的条件.
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |