2012-01-25 19 views
6

Để tải xuống tệp, tôi đang tạo đối tượng urlopen (lớp urllib2) và đọc nó theo khối.Tìm nạp song song các tệp

Tôi muốn kết nối với máy chủ nhiều lần và tải xuống tệp trong sáu phiên khác nhau. Làm như vậy, tốc độ tải xuống sẽ nhanh hơn. Nhiều người quản lý tải xuống có tính năng này.

Tôi nghĩ về việc chỉ định một phần của tệp tôi muốn tải xuống trong mỗi phiên và bằng cách nào đó xử lý tất cả các phiên trong cùng một thời điểm. Tôi không chắc làm thế nào tôi có thể đạt được điều này.

Trả lời

3

Có vẻ như bạn muốn sử dụng một trong các hương vị của HTTP Range khả dụng.

chỉnh sửa link cập nhật để trỏ đến w3.org lưu trữ RFC

+0

Ví dụ: http://stackoverflow.com/a/2021586/1052325 – reclosedev

+0

Liên kết Phạm vi HTTP trả về 404, không chắc chắn nếu thời gian của nó ... – barracel

+0

Cảm ơn bạn đã đề cập đến điều này - đã cập nhật liên kết để trỏ đến w3.org RFC cần ít thoáng qua. – synthesizerpatel

23
3

Như chúng ta đã nói chuyện đã tôi đã thực hiện một ví dụ sử dụng PycURL.

Một và chỉ một điều tôi phải làm là pycurl_instance.setopt(pycurl_instance.NOSIGNAL, 1) để tránh sự cố.

Tôi đã sử dụng APScheduler để kích hoạt các yêu cầu trong các chuỗi riêng biệt. Nhờ lời khuyên của bạn về việc thay đổi chờ đợi bận rộn while True: pass thành while True: time.sleep(3) trong luồng chính mã hoạt động khá tốt đẹp và việc sử dụng mô đun Runner từ ứng dụng gói python-daemon gần như đã sẵn sàng để được sử dụng như một daemon X * điển hình.