经过多次挫折之后,我试图弄明白自己,我正在接触那些人(你们!)来帮助我追踪这个令人生畏的错误:
消息:文件结束到达EOFError Backtrace: [“/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%或更多,并且都是如此频繁。
补救措施: 我正在使用Databasedotcom gem,它使用HTTPS并遵循所有必需的步骤来连接以创建一个理智的HTTPS连接。 所以......
请问这里有什么帮助吗?
答案 0 :(得分:0)
您是否认为Salesforce可能不会同时从单一来源获得这么多连接而您被DDOS防护器阻止?
另外,设置这些长时间超时是没用的。如果连接失败,请将其丢弃并自行重新安排新的连接。这就是Resque做得很好的事情,如果它一直存在问题,它会累积那些等待时间......