経緯
外部APIを利用して大量データをリクエストした時のお話。
Too many open files というエラーが発生し処理ができない、、
何がおきたのか
接続しているソケットのファイルディスクリプタがオーバーフローしている様です。
ファイルディスクリプタって何?って方はこちらの記事を
http://qiita.com/toshihirock/items/78286fccf07dbe6df38f
リクエストする側はLinuxのチューニングで対処できそうですが、(下記の記事を参考)
http://qiita.com/snaka/items/b6520303e37ebde298d2
APIサーバ側は触れないのでどうしようにもない、、
対応
Too many open filesのクラス Errno::EMFILEをハンドリングして、ソケット切替り & コネクションの確立を待機して対応。