我有一个R函数,它使用RCurl库和getURLContent()函数通过它的API调用Web服务器数据库。我经常循环重复调用getURLContent(),这可能会对服务器造成负担。有没有什么我可以通过R / curl接口来避免对服务器要求太高?
这是一个例子,其中url [i]是对应于某些API的不同查询的向量中的第i个url地址。
curl = getCurlHandle()
sapply(url, function(u) getURLContent(u, curl=curl))
答案 0 :(得分:1)
我唯一的“通用”建议是确保curl在请求之间保持与服务器的连接。 HTTP协议的此功能称为keep-alive。我读到一些curl实现默认执行此操作。但我不知道你使用的是哪个版本。这不会减少由PHP生成的服务器上的负载,但是它会减少与每个请求相关的开销,因此也可以加速您的R代码。