我们使用 Ruby 中的 rest-client gem 来自动测试我们的 REST API。但是我注意到,在它发出的每一个请求中,它都会对主机名进行 DNS 查找。在本地环境中,如果使用“localhost”,测试会运行得很快,但如果使用正确的主机名,它们会花费 2.5 倍的时间,执行大量的 DNS 查找。
我相信这个问题与 rest-client 无关,而是与基本的 Ruby 网络有关。我试过要求'resolv'和'resolv-replace',但它们没有帮助。'dig' 报告 DNS 查询的 TTL 为 1 小时。
有没有办法让 Ruby 缓存 DNS 请求?我可以更改代码以明确使用 IP 地址,但这是解决问题的错误位置。
我正在运行 Ubuntu 12.04 和 Ruby 1.9.3。