サービスのために開く必要がある URL の長いリストがあります。このリスト全体を開こうとするたびに、プログラムを開始すると、次のような多くのエラーが表示されます[Errno 24] Too many open files
。私はurllib2とgeventを使用しています。
誰にも解決策はありますか?
ありがとう。
サービスのために開く必要がある URL の長いリストがあります。このリスト全体を開こうとするたびに、プログラムを開始すると、次のような多くのエラーが表示されます[Errno 24] Too many open files
。私はurllib2とgeventを使用しています。
誰にも解決策はありますか?
ありがとう。
Gevent.poolを使用して、一度に一定量の URL のみを開き、URL を開いたときにそれらのグリーンレットを再利用します。
あなたが正確に何をしているのかはまだわかっていないので、推測することしかできません: 一度に多くの URL を開いて、それらを読み取ろうとしているだけです。代わりに、それらを開いたり、読んだり、閉じたりしてから、次のものに進む必要があります。
別の方法として、同時実行可能な URL ローダーを作成することもできます。いくつかのURL を開き、それらを同時に読み取ろうとします。1 つを閉じた後、次を開き始めることができます。一度に 5 ~ 10 個に制限すれば、問題は発生しなくなります。