菜鸟求问多线程下载的缓存设计

2020-05-07 12:54:32 +08:00
 crella
写了个爬 m3u8 的 ts 的脚本。现在下载 ts 的线程有两个。

想改进一下:

1 、每下载够 30 个文件才一次性保存,下载完 30 个文件后把它们从列表里删除,方便 GC 。

2 、保存 ts 文件到硬盘上时,不中断两个下载线程的继续。

3 、每隔 1 分钟,在终端上打印:队列里还有多少个待下载的链接。

注:不需要爬得太快,反正那个 hls 服务器是限带宽的。

问一下各位大佬应该怎么设计比较省资源。谢谢。
1915 次点击
所在节点    Python
4 条回复
crella
2020-05-07 12:58:31 +08:00
注:开两线程是因为那个服务器下载文件有时候会超时,一个好几 K 的文件要下几分钟。觉得检查下载速度有点麻烦,就开两个线程先应付一下。
sola97
2020-05-07 13:27:08 +08:00
不如 aria2
aguesuka
2020-05-07 22:18:34 +08:00
单线程非阻塞 socket,爬到以后也是非阻塞去写文件
luozic
2020-05-08 09:17:03 +08:00
生产者消费者模型,消费者搞个资源池

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/669248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX