feat: 在commit之前获取commit总数,commit期间取消线程间的通信,线程频繁通信将会导致主线程卡顿

This commit is contained in:
OBKoro1 2020-12-10 23:49:04 +08:00
parent dc05aacd83
commit 474df04507

View File

@ -2,7 +2,7 @@
* Author : OBKoro1 * Author : OBKoro1
* Date : 2019-12-30 16:59:30 * Date : 2019-12-30 16:59:30
* LastEditors : OBKoro1 * LastEditors : OBKoro1
* LastEditTime : 2020-12-10 18:51:54 * LastEditTime : 2020-12-10 23:46:26
* FilePath : \autoCommit\src\models\commitHandle.ts * FilePath : \autoCommit\src\models\commitHandle.ts
* Description : commit * Description : commit
* https://github.com/OBKoro1 * https://github.com/OBKoro1
@ -85,13 +85,16 @@ class CommitHandle {
private userCancel: boolean; private userCancel: boolean;
private totalCommit: number; // 总commit次数
constructor(message: WebviewMsg) { constructor(message: WebviewMsg) {
this.paramsObj = message.data.form; this.paramsObj = message.data.form;
this.moreObj = message.data.moreObj; this.moreObj = message.data.moreObj;
this.timeArr = []; this.timeArr = [];
this.totalCommit = 0;
this.userCancel = false;
this.timeHandle(); this.timeHandle();
this.autoCommitView = getPanelWebview(); this.autoCommitView = getPanelWebview();
this.userCancel = false;
} }
// 处理所有时间段 // 处理所有时间段
@ -107,9 +110,12 @@ class CommitHandle {
if (index !== -1) { if (index !== -1) {
this.timeArr.splice(index, 1); this.timeArr.splice(index, 1);
} }
// 获取当天的commit次数
const dayCommitNumber = this.getDayCommitNumber(item.commitNumber);
this.totalCommit = dayCommitNumber + this.totalCommit;
this.timeArr.push({ this.timeArr.push({
value: ele, value: ele,
commitNumber: item.commitNumber, commitNumber: dayCommitNumber,
}); });
}); });
}); });
@ -153,12 +159,13 @@ class CommitHandle {
async commitFn() { async commitFn() {
await outputLog('将要commit的日期:', JSON.stringify(this.timeArr)); await outputLog('将要commit的日期:', JSON.stringify(this.timeArr));
outputLog('总commit次数:', this.totalCommit);
let totalNum = 0; // 总commit次数 let totalNum = 0; // 总commit次数
// 遍历日期 // 遍历日期
for (const item of this.timeArr.values()) { for (const item of this.timeArr.values()) {
if (this.cancelCommit()) break; if (this.cancelCommit()) break;
// 每个日期commit次数 // 每个日期commit次数
const dayCommitNumber = this.getDayCommitNumber(item); const dayCommitNumber = item.commitNumber;
if (sep === '\\') { if (sep === '\\') {
const reg = new RegExp(/\\/g); const reg = new RegExp(/\\/g);
this.paramsObj.itemSrc = `${this.paramsObj.itemSrc.replace(reg, '/')}`; this.paramsObj.itemSrc = `${this.paramsObj.itemSrc.replace(reg, '/')}`;
@ -192,6 +199,7 @@ class CommitHandle {
}); });
}); });
} catch (err) { } catch (err) {
outputLog(`commit出错:${err}`);
continue; // 错误 退出本次循环 continue; // 错误 退出本次循环
} }
} else { } else {
@ -204,9 +212,10 @@ class CommitHandle {
}, 1000); }, 1000);
}); });
} }
outputLog(`${totalNum + 1}commit内容`, commitContent);
outputLog(`${totalNum + 1}commit信息`, commitMsg);
totalNum += 1; totalNum += 1;
// commit次数小于100显示log
console.log(`${totalNum}commit内容`, commitContent);
console.log(`${totalNum}commit信息`, commitMsg);
} }
} }
this.pushCommitFn(totalNum); this.pushCommitFn(totalNum);
@ -315,15 +324,17 @@ class CommitHandle {
return commitContent; return commitContent;
} }
getDayCommitNumber(item: DayTime) { // 获取当天的commit次数
let dayCommitNumber = this.paramsObj.commitNumber; getDayCommitNumber(commitNumber: number) {
let dayCommitNumber = this.paramsObj.commitNumber; // 固定commit次数
// 使用随机commit次数
if (this.paramsObj.randomCommit) { if (this.paramsObj.randomCommit) {
// 随机commit次数
dayCommitNumber = RandomNumber(1, this.paramsObj.commitNumber); dayCommitNumber = RandomNumber(1, this.paramsObj.commitNumber);
} }
if (item.commitNumber !== 0) {
// 如果该范围有commit次数 则用该范围的 // 如果该时间范围有commit次数 则用该范围的
dayCommitNumber = item.commitNumber; if (commitNumber !== 0) {
dayCommitNumber = commitNumber;
} }
return dayCommitNumber; return dayCommitNumber;
} }