@edgenets/utils 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,KAAK,CAAC,CAAC;IAMN,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAa;gBAEhB,OAAO,GAAE,YAA8C;IAKpE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAQ3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,SAAS,IAAI;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;KACvB;YASa,YAAY;
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,KAAK,CAAC,CAAC;IAMN,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAa;gBAEhB,OAAO,GAAE,YAA8C;IAKpE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAQ3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,SAAS,IAAI;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;KACvB;YASa,YAAY;CA6C3B"}
|
@@ -1,18 +1,18 @@
|
|
1
1
|
export class Queue {
|
2
2
|
options;
|
3
|
-
queue = []; //
|
4
|
-
activeTasks = 0; //
|
5
|
-
isProcessing = false; //
|
6
|
-
processNextTask; //
|
3
|
+
queue = []; // 任务队列
|
4
|
+
activeTasks = 0; // 当前正在处理的任务数
|
5
|
+
isProcessing = false; // 队列是否正在处理
|
6
|
+
processNextTask; // 处理下一个任务
|
7
7
|
constructor(options = { concurrency: 1, interval: 0 }) {
|
8
8
|
this.options = options;
|
9
|
-
this.processNextTask = () => { };
|
9
|
+
this.processNextTask = () => { }; // 初始化为空函数,避免未定义时调用
|
10
10
|
}
|
11
11
|
// 添加任务到队列
|
12
12
|
enqueue(task) {
|
13
13
|
this.queue.push(task);
|
14
14
|
if (!this.isProcessing) {
|
15
|
-
this.processQueue();
|
15
|
+
this.processQueue(); // 启动任务处理
|
16
16
|
}
|
17
17
|
}
|
18
18
|
// 手动触发队列处理
|
@@ -36,20 +36,21 @@ export class Queue {
|
|
36
36
|
// 队列处理逻辑
|
37
37
|
async processQueue() {
|
38
38
|
if (this.isProcessing)
|
39
|
-
return; //
|
39
|
+
return; // 如果正在处理,直接返回
|
40
40
|
this.isProcessing = true;
|
41
41
|
const processTask = async (task) => {
|
42
42
|
try {
|
43
|
-
await task();
|
43
|
+
await task(); // 执行单个任务
|
44
44
|
}
|
45
45
|
catch (err) {
|
46
46
|
console.error(`[Queue][TaskFailed]: ${err}`);
|
47
47
|
}
|
48
48
|
finally {
|
49
49
|
this.activeTasks--;
|
50
|
-
this.processNextTask();
|
50
|
+
this.processNextTask(); // 任务完成后继续处理下一个
|
51
51
|
}
|
52
52
|
};
|
53
|
+
// 定义处理下一个任务的逻辑
|
53
54
|
this.processNextTask = () => {
|
54
55
|
if (this.queue.length === 0) {
|
55
56
|
if (this.activeTasks === 0) {
|
@@ -58,16 +59,17 @@ export class Queue {
|
|
58
59
|
}
|
59
60
|
return;
|
60
61
|
}
|
62
|
+
// 如果当前任务数小于并发限制,启动下一个任务
|
61
63
|
if (this.activeTasks < (this.options.concurrency || 1)) {
|
62
64
|
const task = this.queue.shift();
|
63
65
|
if (task) {
|
64
66
|
this.activeTasks++;
|
65
|
-
processTask(task);
|
67
|
+
processTask(task); // 处理任务
|
66
68
|
}
|
67
69
|
}
|
68
70
|
};
|
69
|
-
|
70
|
-
|
71
|
+
// 启动并发任务
|
72
|
+
for (let i = 0; i < (this.options.concurrency || 1) && this.queue.length > 0; i++) {
|
71
73
|
this.processNextTask();
|
72
74
|
}
|
73
75
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,KAAK;IAMI;IALZ,KAAK,GAAmB,EAAE,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"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"}
|