@edgenets/utils 0.1.8 → 0.1.9

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.
@@ -10,9 +10,12 @@ export declare class Queue<T> {
10
10
  private isProcessing;
11
11
  constructor(options?: QueueOptions);
12
12
  enqueue(task: QueueTask<T>): void;
13
- getActiveTasks(): number;
14
- getQueueLength(): number;
15
- isQueueProcessing(): boolean;
13
+ trigger(): Promise<void>;
14
+ getStatus(): {
15
+ activeTasks: number;
16
+ pendingTasks: number;
17
+ isProcessing: boolean;
18
+ };
16
19
  private processQueue;
17
20
  private delay;
18
21
  }
@@ -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;IAMhB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;gBAGnB,OAAO,GAAE,YAAiD;IAI7D,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAQjC,cAAc,IAAI,MAAM;IAKxB,cAAc,IAAI,MAAM;IAKxB,iBAAiB,IAAI,OAAO;YAKrB,YAAY;IA+B1B,OAAO,CAAC,KAAK;CAGd"}
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;IAMhB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;gBAGnB,OAAO,GAAE,YAAiD;IAI7D,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAS3B,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;IAgC1B,OAAO,CAAC,KAAK;CAGd"}
@@ -1,8 +1,8 @@
1
1
  export class Queue {
2
2
  options;
3
3
  queue = [];
4
- activeTasks = 0; // 当前正在执行的任务数量
5
- isProcessing = false; // 是否正在处理队列
4
+ activeTasks = 0;
5
+ isProcessing = false;
6
6
  constructor(options = { concurrency: 1, interval: 1000 }) {
7
7
  this.options = options;
8
8
  }
@@ -10,48 +10,55 @@ export class Queue {
10
10
  enqueue(task) {
11
11
  this.queue.push(task);
12
12
  if (!this.isProcessing) {
13
+ console.log("[Queue] Automatically starting processQueue...");
13
14
  this.processQueue();
14
15
  }
15
16
  }
16
- // 获取当前活跃任务数
17
- getActiveTasks() {
18
- return this.activeTasks;
19
- }
20
- // 获取当前队列长度
21
- getQueueLength() {
22
- return this.queue.length;
17
+ // 手动触发队列处理
18
+ async trigger() {
19
+ console.log("[Queue] Manually triggered processQueue...");
20
+ if (!this.isProcessing) {
21
+ await this.processQueue();
22
+ }
23
+ else {
24
+ console.log("[Queue] Already processing.");
25
+ }
23
26
  }
24
- // 是否正在处理任务
25
- isQueueProcessing() {
26
- return this.isProcessing;
27
+ // 获取队列状态
28
+ getStatus() {
29
+ return {
30
+ activeTasks: this.activeTasks,
31
+ pendingTasks: this.queue.length,
32
+ isProcessing: this.isProcessing,
33
+ };
27
34
  }
28
35
  // 队列处理逻辑
29
36
  async processQueue() {
30
37
  this.isProcessing = true;
31
38
  while (this.queue.length > 0) {
32
- // 取出当前批次任务
33
39
  const batch = this.queue.splice(0, this.options.concurrency || 1);
34
40
  this.activeTasks += batch.length;
35
- // 执行批量任务
41
+ console.log(`[Queue] Processing batch of ${batch.length} tasks...`);
36
42
  await Promise.all(batch.map(async (task) => {
37
43
  try {
38
- await task(); // 执行单个任务
44
+ await task();
39
45
  }
40
46
  catch (err) {
41
47
  console.error(`[Queue][TaskFailed]: ${err}`);
42
48
  }
43
49
  finally {
44
- this.activeTasks--; // 任务完成后减少计数
50
+ this.activeTasks--;
45
51
  }
46
52
  }));
47
- // 如果还有剩余任务,延迟执行下一批
48
53
  if (this.queue.length > 0) {
49
- await this.delay(this.options.interval || 1000);
54
+ console.log(`[Queue] Delaying for ${this.options.interval || 0}ms...`);
55
+ await this.delay(this.options.interval || 0);
50
56
  }
51
57
  }
52
- this.isProcessing = false; // 队列处理完成
58
+ this.isProcessing = false;
59
+ console.log("[Queue] All tasks processed.");
53
60
  }
54
- // 延迟函数
61
+ // 延迟执行
55
62
  delay(ms) {
56
63
  return new Promise((resolve) => setTimeout(resolve, ms));
57
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,KAAK;IAMN;IALF,KAAK,GAAmB,EAAE,CAAC;IAC3B,WAAW,GAAG,CAAC,CAAC,CAAC,cAAc;IAC/B,YAAY,GAAG,KAAK,CAAC,CAAC,WAAW;IAEzC,YACU,UAAwB,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAA1D,YAAO,GAAP,OAAO,CAAmD;IACjE,CAAC;IAEJ,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,YAAY;IACL,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,WAAW;IACJ,cAAc;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,WAAW;IACJ,iBAAiB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,SAAS;IACD,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,WAAW;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YAEjC,SAAS;YACT,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACH,MAAM,IAAI,EAAE,CAAC,CAAC,SAAS;gBACzB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;gBAC/C,CAAC;wBAAS,CAAC;oBACT,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;gBAClC,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YAEF,mBAAmB;YACnB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,SAAS;IACtC,CAAC;IAED,OAAO;IACC,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/utils/tasks/queue.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,KAAK;IAMN;IALF,KAAK,GAAmB,EAAE,CAAC;IAC3B,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,KAAK,CAAC;IAE7B,YACU,UAAwB,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAA1D,YAAO,GAAP,OAAO,CAAmD;IACjE,CAAC;IAEJ,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,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,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,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YAEjC,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;YAEpE,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACH,MAAM,IAAI,EAAE,CAAC;gBACf,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;gBAC/C,CAAC;wBAAS,CAAC;oBACT,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;IACC,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgenets/utils",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Edgenets utilities package containing common types and utilities.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",