ユーザーがURLを入力できるフォームをWebページに作成し、URLのCSSに関する情報を返します。私が気付いた1つの問題を除けば、ツールは正常に動作します。
スクリプトがホストされているサイトのURLを入力すると(ローカル、ステージングサーバー、および運用サーバーでテストされます)、open-uriコマンド'open'はTimeout::Errorを返します。さて、これはそれほど驚くべきことではありません。何かが行のどこかでロックされており、スクリプトを実行して現在のURLを開くプロセスで、プロセスが少し拘束されていると思います。
参考までに、タイムアウトが発生する方法は次のとおりです。
# loads the Nokogiri XML object if it hasn't already been loaded
def site
begin
timeout(10) do
@site ||= Nokogiri::HTML(open(url))
end
rescue Timeout::Error
return nil
end
end
私の質問は、スクリプトが現在実行されているドメインを「開く」ことができるようにするにはどうすればよいですか?ツールのこの特定の側面を処理するために別のスレッドまたは何かを作成する必要がありますか?そうであれば、「open」コマンドから有効なものを受け取るまでスクリプトの残りの部分が実行されないようにするにはどうすればよいですか?
これに関する提案やヒントをありがとう。