修复SpkDownloadMgr重大bug

1. 原有依靠Qt Network的连接超时不可靠,改为自己使用Watchdog值跟踪。
2. 原有代码在请求时大量未对Reply设置正确的workerId,已修正
3. 原有代码不能自动在出错worker出错但其他worker已经全部完成时进行得分配,已修正
4. 原有代码ActiveWorkerCount计算方法不准确,每次link都会增加,但是由于重试重分配都会Link而且Worker不会从
List中删除,所以已改为任务开始时一次加满
5. 原有代码忘记在WorkerFinish时检查有否未写入的cache以及未关闭下载文件
6. 原有代码未将Reply的errorOccurred信号与WorkerError槽连接,导致这个槽并没有发挥什么卵用

测试文件改为有道词典,小一点
增加了等待HEAD请求时光标变成忙的特性
This commit is contained in:
RigoLigoRLC
2022-02-19 02:38:03 +08:00
parent 03f157f620
commit 8f32141726
4 changed files with 83 additions and 5 deletions

View File

@@ -12,6 +12,8 @@ int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qRegisterMetaType<SpkDownloadMgr::TaskResult>("TaskResult");
QString LogPath = "";
SpkStore store(false, LogPath);