@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;CAyC3B"}
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; // 声明 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
- while (this.activeTasks < (this.options.concurrency || 1) &&
70
- this.queue.length > 0) {
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,aAAa;IACzC,WAAW,GAAG,CAAC,CAAC,CAAC,aAAa;IAC9B,YAAY,GAAG,KAAK,CAAC,CAAC,aAAa;IACnC,eAAe,CAAa,CAAC,qBAAqB;IAE1D,YAAoB,UAAwB,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;QAAvD,YAAO,GAAP,OAAO,CAAgD;QACzE,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAClC,CAAC;IAED,UAAU;IACH,OAAO,CAAC,IAAkB;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,WAAW;IACJ,KAAK,CAAC,OAAO;QAClB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,SAAS;IACF,SAAS;QAKd,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,SAAS;IACD,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,SAAS;QAExC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,MAAM,WAAW,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;YAC/C,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,OACE,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACrB,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgenets/utils",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Edgenets utilities package containing common types and utilities.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",