2012-07-30 35 views
5

Tôi có một danh sách dài các URL tôi cần để mở cho dịch vụ của mình. Bất cứ khi nào tôi cố gắng mở toàn bộ danh sách này, tôi nhận được nhiều lỗi như thế này khi tôi bắt đầu chương trình: [Errno 24] Too many open files. Tôi đang sử dụng urllib2 và gevent.Lỗi Python urllib2

Có ai có giải pháp nào không?

Cảm ơn.

+4

cần hiển thị một số mã. sscce.org –

+2

và traceback đầy đủ –

Trả lời

2

Sử dụng Gevent.pool để chỉ mở một số lượng url nhất định tại một thời điểm sau đó sử dụng lại các greenlet đó khi đã mở url.

+0

Cảm ơn, điều này đã khắc phục được sự cố! –

0

Vì chúng tôi vẫn không biết bạn chính xác làm gì, tôi chỉ có thể đoán: bạn đang mở nhiều URL cùng một lúc và chỉ khi đó bạn cố đọc chúng. Thay vào đó, bạn nên/có thể mở-đọc-đóng chúng và sau đó tiến tới kế tiếp.

Hoặc, bạn có thể tạo trình tải URL có khả năng tương thích: mở một số url và cố đọc chúng đồng thời. Sau khi đóng một, bạn có thể bắt đầu mở tiếp theo. Nếu bạn giới hạn đến 5 hoặc 10 cùng một lúc, bạn sẽ không gặp vấn đề gì nữa.

Các vấn đề liên quan