tôi đã thiết lập một kịch bản watir-Webdriver mà tôi muốn báo cáo đến một dịch vụ từ xa:Tại sao Net: HTTP/HTTParty cuộc gọi gián đoạn watir-Webdriver script/Net :: ReadTimeout lỗi
puts "Starting..."
b = Watir::Browser.new :ie
puts "Started browser"
puts "Setting status as non-idle"
request = Net::HTTP::Post.new()
url = URI(HOME + '/update_status')
request.body = JSON.generate({ scrapeId: SCRAPE_ID, status: 'working' })
# This step freezes processing
Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
puts "This step never happens"
Tại Đồng thời, Node.js/watir nhanh được ping để có thiết bị đầu cuối như sau:
app.post('/update_status', function(req, res) {
redis.hset(req.body.scrapeId, 'status', req.body.status);
if (req.body.status === 'finished') {
redis.expire(req.body.scrapeId, SIX_HOURS);
}
res.send('response from post /update_status');
});
Câu hỏi: Tại sao Net :: HTTP thời gian ra khi đánh /update_status
? Thật thú vị, nếu máy chủ trả về 404 (điểm cuối không tồn tại), kịch bản Watir vẫn tiếp tục bình thường.
Net::ReadTimeout
rõ ràng là culrpit, nhưng tại sao?