慢 Braintree API 来自 Travis 的请求 CI

Slow Braintree API Requests from Travis CI

我编写了一个使用 Braintree Java SDK 的服务器端 Clojure 服务。它请求创建支付令牌、创建客户、处理通知等。我编写了一套测试,通过调用 Braintree 沙箱来测试所有这些。这一切都很好,直到我尝试 运行 Travis 上的测试。

在 Travis 上,至少有 50% 的时间,我的构建因为超时而失败,并且我已经将调用范围缩小到对 Braintree SDK 的第一次调用(在我的例子中是寻找客户,但是先打什么电话似乎并不重要)。代码会在那里等待几分钟,等待调用完成。有时它会很快发生,有时 10 分钟就过去了,Travis 的工作就放弃了。这在本地永远不会发生。

有谁知道发生了什么事吗?由于它似乎只影响对 Braintree 的第一次调用,也许与握手过程有关?还有其他人看到这个问题吗?

虽然它是在黑暗中拍摄的,但这可能是构建平台缺乏良好熵源的问题,并且您的代码 and/or 依赖项的一部分正在阻止读取随机设备。如果缺少好的熵源,可以通过安装 haveged 来解决。

为了安装和启动 haveged, the use of apt addon 是必需的。请将以下内容添加到您的 .travis.yml 中,看看是否有任何改进:

addons:
  apt:
    packages:
      - haveged