我正在尝试使用系统调用在rails应用程序中运行ruby脚本,例如
def runSystemCall
system("ruby /path/to/ruby/script/watir.rb localhost:3000/articles/14")
end
和watir.rb
:
def watir(url)
bb = Watir::Browser.new :chrome
bb.goto "#{url[0]}"
end
watir(ARGV)
在rails应用程序中运行时,浏览器打开并保持状态Waiting for localhost...
,直到出现错误
.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
加载了已开通的网站localhost:3000/articles/14
。
任何人都知道为什么?
并且,当在终端中运行时
$ ruby /path/to/ruby/script/watir.rb localhost:3000/articles/14
浏览器已打开并打开网站localhost:3000/articles/14
这就是我的预期。
答案 0 :(得分:1)
您的本地服务器是单线程的。这意味着它一次只能处理一个请求。如果一个本地请求想要从同一本地服务器加载另一个页面,那么至少需要两个本地线程。