2013-11-23 12 views
6

スクリプトでreadLines(text url)を使用しています。ここでは、readLines(text url)が数百回呼び出されます。各テキストURLは一意です。Rの接続を正しく閉じると、その接続「スロット」が解放されますか?

readLines(テキストURL)を約125回呼び出した後、「すべての接続が使用中です。」というエラーが発生しました。

私は私が見るURL接続の、showConnectionsと私のオープン接続(すべて= TRUE)を確認してください。私は新しい接続を開くことができるように

description  class ... isopen 
"www.site.com" "url" ... "closed" ... 

にはどうすればR環境からこれらの閉じられた接続を削除するには?

また、前回のURLを開こうとしましたが、url接続をreadLinesに渡してから、接続が終了しても接続を閉じて、同じ問題が発生しました。

+4

に発生した場合でもRで、それを行う最も簡単な方法は、あなたが関数' closeAllConnections'を見つけるだろうshowConnections'?URLを保証するon.exit()を閉じます使用することです。それは役に立ちますか? –

+0

私はcloseAllConnectionsを試したところ、私のrインタプリタがクラッシュしました。私はいくつかの非URL接続を開いたままにする必要があるので、一般的には、それが実行可能な解決策だとは思わない。 – user220419

+0

'close'を試しましたか? – Thomas

答えて

5

このような問題を避ける最も簡単な方法は、接続が完了したら明示的に接続を閉じることです。あなたは `入力した場合、エラーがあなたのコード

read_url <- function(url, ...) { 
    on.exit(close(url)) 
    readLines(url, ...) 
} 
showConnections() 
g <- read_url("http://www.google.com") 
showConnections() 
関連する問題