5

サービスのために開く必要がある URL の長いリストがあります。このリスト全体を開こうとするたびに、プログラムを開始すると、次のような多くのエラーが表示されます[Errno 24] Too many open files。私はurllib2とgeventを使用しています。

誰にも解決策はありますか?

ありがとう。

4

2 に答える 2

2

Gevent.poolを使用して、一度に一定量の URL のみを開き、URL を開いたときにそれらのグリーンレットを再利用します。

于 2012-07-30T13:30:24.740 に答える
0

あなたが正確に何をしているのかはまだわかっていないので、推測することしかできません: 一度に多くの URL を開いて、それらを読み取ろうとしているだけです。代わりに、それらを開いたり、読んだり、閉じたりしてから、次のものに進む必要があります。

別の方法として、同時実行可能な URL ローダーを作成することもできます。いくつかのURL を開き、それらを同時に読み取ろうとします。1 つを閉じた後、次を開き始めることができます。一度に 5 ~ 10 個に制限すれば、問題は発生しなくなります。

于 2012-07-30T08:58:00.817 に答える