|
|
@ -96,6 +96,19 @@ |
|
|
|
tableData: [], |
|
|
|
playing_url: "", |
|
|
|
playing_auto: false, |
|
|
|
workCount: 0, |
|
|
|
cacheQueue: [], |
|
|
|
cacheQueueOption: { |
|
|
|
push: (element) => { |
|
|
|
this.cacheQueue.push(element); |
|
|
|
}, |
|
|
|
pop: () => { |
|
|
|
return this.cacheQueue.shift(); |
|
|
|
}, |
|
|
|
size: () => { |
|
|
|
return this.cacheQueue.length; |
|
|
|
} |
|
|
|
}, |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted() { |
|
|
@ -117,9 +130,43 @@ |
|
|
|
}); |
|
|
|
}, |
|
|
|
handleFile(file) { |
|
|
|
|
|
|
|
// 新的文件加入 |
|
|
|
if (file) { |
|
|
|
console.log("workCount", this.workCount); |
|
|
|
// 将工作数量大小限制为100 |
|
|
|
if (this.workCount < 100) { |
|
|
|
// 工作数量增加 |
|
|
|
this.workCount++; |
|
|
|
// 工作数量小于100 立刻处理文件 |
|
|
|
this.handleDoFile(file); |
|
|
|
} |
|
|
|
// 工作数量大于100 则放入缓存队列 |
|
|
|
else { |
|
|
|
this.cacheQueueOption.push(file); |
|
|
|
} |
|
|
|
} |
|
|
|
//消费缓存队列的数据 |
|
|
|
else { |
|
|
|
this.workCount++; |
|
|
|
this.handleDoFile(this.cacheQueueOption.pop()); |
|
|
|
} |
|
|
|
}, |
|
|
|
handleCacheQueue() { |
|
|
|
// 缓存队列中有数据且工作数量少于50的话 调用方法消费缓存队列中的数据 |
|
|
|
if (this.cacheQueueOption.size() > 0 && this.workCount < 50) { |
|
|
|
this.handleFile(null); |
|
|
|
console.log("size", this.cacheQueueOption.size(), this.workCount); |
|
|
|
} |
|
|
|
}, |
|
|
|
handleDoFile(file) { |
|
|
|
(async () => { |
|
|
|
let data = await dec.CommonDecrypt(file); |
|
|
|
|
|
|
|
|
|
|
|
// 完成之后 数量减少 同时调用判断函数 |
|
|
|
this.workCount--; |
|
|
|
this.handleCacheQueue(); |
|
|
|
|
|
|
|
if (data.status) { |
|
|
|
this.tableData.push(data); |
|
|
|
this.$notify.success({ |
|
|
|