我正在使用我自己的CURL库,在多线程应用程序中重用简单的句柄--目标是重用TCP连接和DNS查找。每次向池返回句柄时,都会在该句柄上调用curl_easy_reset。
目前,我的实现对每个卷曲简单的句柄都使用单独的本地DNS缓存。我在玩CURL共享接口和共享DNS缓存,它似乎工作得很好,但我不明白设置DNS缓存超时的正确方法是什么?
DNS缓存超时设置在CURL轻松句柄上,但缓存是共享的。我是否需要每次从池中获得句柄时设置超时(因为以前调用了重置),还是只设置了一次缓存超时,直到更改为止?
发布于 2014-07-23 10:48:05
超时值实际上是根据每个简单句柄存储和使用的。因此,每个简单句柄都有自己的超时值,即使在共享DNS缓存时也是如此。因此,每个简单的句柄都将删除一个太旧的条目,并根据其自身的值重新解析一个名称。
当您为一个简单的句柄设置超时值时,该超时值将“保持”并被使用,直到您再次将其设置为其他内容为止。(与其他所有选项一样)
当然,在句柄上调用curl_easy_reset()会将句柄的超时值重置回其内部默认值。
https://stackoverflow.com/questions/24906630
复制相似问题