Closed DasyDong closed 4 years ago
Merging #59 into master will not change coverage. The diff coverage is
33.33%
.
@@ Coverage Diff @@
## master #59 +/- ##
=======================================
Coverage 72.36% 72.36%
=======================================
Files 17 17
Lines 1017 1017
=======================================
Hits 736 736
Misses 281 281
Impacted Files | Coverage Δ | |
---|---|---|
geektime_dl/cli/query.py | 100% <ø> (ø) |
:arrow_up: |
geektime_dl/cli/mp3.py | 67.16% <ø> (ø) |
:arrow_up: |
geektime_dl/cli/command.py | 82.24% <0%> (ø) |
:arrow_up: |
geektime_dl/cli/ebook.py | 64.66% <100%> (ø) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update f9b5b8e...acddcbf. Read the comment docs.
@DasyDong tinydb 的确不支持并发,这个在代码中也体现了。不管是 DataClient 这个内部类,还是对外接口的各个 cli 命令都是线程安全的。
不知道你是在什么使用场景下,需要额外考虑这个问题?
@DasyDong tinydb 的确不支持并发,这个在代码中也体现了。不管是 DataClient 这个内部类,还是对外接口的各个 cli 命令都是线程安全的。
不知道你是在什么使用场景下,需要额外考虑这个问题?
因为我是企业版客户, 会下载所有的课程,单独下载比较慢,所以我是geektime mp4batch 和geektime mp3batch 同时运行,这个场景会遇到报错。但这个报错还不是在命令运行的时候就能发现的, 是通常运行一段时间后才能体现。
既然代码里体现了, 那就忽略吧
@DasyDong tinydb 的确不支持并发,这个在代码中也体现了。不管是 DataClient 这个内部类,还是对外接口的各个 cli 命令都是线程安全的。 不知道你是在什么使用场景下,需要额外考虑这个问题?
因为我是企业版客户, 会下载所有的课程,单独下载比较慢,所以我是geektime mp4batch 和geektime mp3batch 同时运行,这个场景会遇到报错。但这个报错还不是在命令运行的时候就能发现的, 是通常运行一段时间后才能体现。
既然代码里体现了, 那就忽略吧
不建议多进程使用,也就是跑多个 cli 命令, 主要原因是 gk cookie 的问题,一个时刻只有一个cookie 起作用,而且还有频率的限制,请求太快会被导致cookie失效重新生成cookie,所以多个进程实际上效率没有单进程的高。 其次,tinydb不管我怎么加锁,多进程如果用同一个 文件还是有问题的。
@DasyDong tinydb 的确不支持并发,这个在代码中也体现了。不管是 DataClient 这个内部类,还是对外接口的各个 cli 命令都是线程安全的。 不知道你是在什么使用场景下,需要额外考虑这个问题?
因为我是企业版客户, 会下载所有的课程,单独下载比较慢,所以我是geektime mp4batch 和geektime mp3batch 同时运行,这个场景会遇到报错。但这个报错还不是在命令运行的时候就能发现的, 是通常运行一段时间后才能体现。 既然代码里体现了, 那就忽略吧
不建议多进程使用,也就是跑多个 cli 命令, 主要原因是 gk cookie 的问题,一个时刻只有一个cookie 起作用,而且还有频率的限制,请求太快会被导致cookie失效重新生成cookie,所以多个进程实际上效率没有单进程的高。 其次,tinydb不管我怎么加锁,多进程如果用同一个 文件还是有问题的。
OK, 了解了!
切勿使用并发或多线程运行geektime,因为基于tinydb存储天然不支持多并发,在多并发或多线程情况下会导致存储报错。 Issue tinyrecord