2012-01-25 111 views
6

爲了下載文件,我創建了一個urlopen對象(urllib2類)並以塊的形式讀取它。並行讀取文件

我想多次連接到服務器並在六個不同的會話中下載文件。這樣做,下載速度應該會變得更快。許多下載管理器都具有此功能。

我想過指定我想在每個會話中下載的文件部分,並以某種方式在同一時間處理所有會話。我不知道我怎麼能做到這一點。

回答

3

聽起來像你想使用HTTP Range可用的風味之一。

編輯更新的鏈接指向存儲w3.org RFC

+0

示例:http://stackoverflow.com/a/2021586/1052325 – reclosedev

+0

HTTP範圍鏈接返回404,不知道它的時間... – barracel

+0

謝謝你提到這一點 - 更新鏈接指向w3.org RFC應該不那麼短暫。 – synthesizerpatel

23
3

正如我們已經已經在討論我做了使用PycURL這樣的一個。

爲了防止崩潰,我唯一需要做的就是pycurl_instance.setopt(pycurl_instance.NOSIGNAL, 1)

我確實使用APScheduler來觸發單獨線程中的請求。感謝您在主線程中更改繁忙等待while True: passwhile True: time.sleep(3)的建議,代碼表現得相當不錯,而使用python-daemon程序包應用程序中的Runner模塊幾乎可以用作典型的UN * X守護程序。