在试图自己弄清楚它的挫折之后,我正在寻求 SO 伙计们(你!)来帮助我追踪这个可怕的错误:
消息:文件结尾到达 EOFError 回溯:[“/app/vendor/ruby-1.9.3/lib/ruby/1.9.1/openssl/buffering.rb:174:in `sysread_nonblock
背景:我的应用程序是托管在 Heroku 和 100% 后端应用程序上的 Rails 3 应用程序。它使用 Redis/Resque 工作人员处理使用 Chatter REST API 从 Salesforce 接收的有效负载。
麻烦:与 Ruby 中 HTTPS/OpenSSL 中的其他类似 EOF 错误不同,我的错误发生得非常随机(因为我还无法预测何时会出现)。
通常的嫌疑人:当我尝试创建 45 个 Resque 工作人员并尝试一次同步来自 45 个不同的 Salesforce Chatter REST API 连接的数据时,经常会注意到该错误!它是如此频繁,以至于我的处理失败了总数的 20% 或更多,而且都是由于这个错误。
补救措施:我正在使用使用 HTTPS 的 Databasedotcom gem,并按照所有必需的步骤进行连接以创建健全的 HTTPS 连接。所以...
- 使用 HTTPS 中设置的 SSL - 选中
- URI 编码 - 选中
- Ruby 1.9.3 - 检查
- HTTP 读取超时设置为 900(15 分钟)
- 我在每次重试前睡眠 30 秒后重试此 EOF 错误 MAX 30 次!尽管如此,它还是失败了一些数据。
请问这里有什么帮助吗?