@push.rocks/taskbuffer 3.4.0 → 4.0.0

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.
Files changed (44) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/taskbuffer.classes.bufferrunner.js +17 -4
  3. package/dist_ts/taskbuffer.classes.cyclecounter.d.ts +1 -0
  4. package/dist_ts/taskbuffer.classes.cyclecounter.js +14 -1
  5. package/dist_ts/taskbuffer.classes.task.d.ts +5 -0
  6. package/dist_ts/taskbuffer.classes.task.js +54 -7
  7. package/dist_ts/taskbuffer.classes.taskchain.d.ts +2 -2
  8. package/dist_ts/taskbuffer.classes.taskchain.js +14 -5
  9. package/dist_ts/taskbuffer.classes.taskdebounced.js +14 -3
  10. package/dist_ts/taskbuffer.classes.taskmanager.js +13 -7
  11. package/dist_ts/taskbuffer.classes.taskparallel.js +4 -2
  12. package/dist_ts/taskbuffer.classes.taskrunner.d.ts +6 -6
  13. package/dist_ts/taskbuffer.classes.taskrunner.js +19 -13
  14. package/dist_ts/taskbuffer.interfaces.d.ts +2 -0
  15. package/dist_ts_web/ts/taskbuffer.classes.bufferrunner.js +17 -4
  16. package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.d.ts +1 -0
  17. package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.js +14 -1
  18. package/dist_ts_web/ts/taskbuffer.classes.task.d.ts +5 -0
  19. package/dist_ts_web/ts/taskbuffer.classes.task.js +54 -7
  20. package/dist_ts_web/ts/taskbuffer.classes.taskchain.d.ts +2 -2
  21. package/dist_ts_web/ts/taskbuffer.classes.taskchain.js +14 -5
  22. package/dist_ts_web/ts/taskbuffer.classes.taskdebounced.js +14 -3
  23. package/dist_ts_web/ts/taskbuffer.classes.taskmanager.js +13 -7
  24. package/dist_ts_web/ts/taskbuffer.classes.taskparallel.js +4 -2
  25. package/dist_ts_web/ts/taskbuffer.classes.taskrunner.d.ts +6 -6
  26. package/dist_ts_web/ts/taskbuffer.classes.taskrunner.js +19 -13
  27. package/dist_ts_web/ts/taskbuffer.interfaces.d.ts +2 -0
  28. package/dist_ts_web/ts_web/00_commitinfo_data.js +1 -1
  29. package/dist_ts_web/ts_web/taskbuffer-dashboard.js +6 -14
  30. package/npmextra.json +14 -8
  31. package/package.json +22 -18
  32. package/readme.hints.md +28 -1
  33. package/readme.md +29 -4
  34. package/ts/00_commitinfo_data.ts +1 -1
  35. package/ts/taskbuffer.classes.bufferrunner.ts +14 -3
  36. package/ts/taskbuffer.classes.cyclecounter.ts +12 -0
  37. package/ts/taskbuffer.classes.task.ts +68 -17
  38. package/ts/taskbuffer.classes.taskchain.ts +17 -10
  39. package/ts/taskbuffer.classes.taskdebounced.ts +12 -2
  40. package/ts/taskbuffer.classes.taskmanager.ts +11 -6
  41. package/ts/taskbuffer.classes.taskparallel.ts +3 -1
  42. package/ts/taskbuffer.classes.taskrunner.ts +17 -12
  43. package/ts/taskbuffer.interfaces.ts +2 -0
  44. package/ts_web/00_commitinfo_data.ts +1 -1
@@ -1,13 +1,14 @@
1
1
  import * as plugins from './taskbuffer.plugins.js';
2
2
 
3
3
  import { Task } from './taskbuffer.classes.task.js';
4
+ import { logger } from './taskbuffer.logging.js';
4
5
 
5
6
  export class TaskRunner {
6
- public maxParrallelJobs: number = 1;
7
+ public maxParallelJobs: number = 1;
7
8
  public status: 'stopped' | 'running' = 'stopped';
8
9
  public runningTasks: plugins.lik.ObjectMap<Task> =
9
10
  new plugins.lik.ObjectMap<Task>();
10
- public qeuedTasks: Task[] = [];
11
+ public queuedTasks: Task[] = [];
11
12
 
12
13
  constructor() {
13
14
  this.runningTasks.eventSubject.subscribe(async (eventArg) => {
@@ -16,19 +17,19 @@ export class TaskRunner {
16
17
  }
17
18
 
18
19
  /**
19
- * adds a task to the qeue
20
+ * adds a task to the queue
20
21
  */
21
22
  public addTask(taskArg: Task) {
22
- this.qeuedTasks.push(taskArg);
23
+ this.queuedTasks.push(taskArg);
23
24
  this.checkExecution();
24
25
  }
25
26
 
26
27
  /**
27
28
  * set amount of parallel tasks
28
- * be careful, you might loose dependability of tasks
29
+ * be careful, you might lose dependability of tasks
29
30
  */
30
- public setMaxParallelJobs(maxParrallelJobsArg: number) {
31
- this.maxParrallelJobs = maxParrallelJobsArg;
31
+ public setMaxParallelJobs(maxParallelJobsArg: number) {
32
+ this.maxParallelJobs = maxParallelJobsArg;
32
33
  }
33
34
 
34
35
  /**
@@ -39,17 +40,21 @@ export class TaskRunner {
39
40
  }
40
41
 
41
42
  /**
42
- * checks wether execution is on point
43
+ * checks whether execution is on point
43
44
  */
44
45
  public async checkExecution() {
45
46
  if (
46
- this.runningTasks.getArray().length < this.maxParrallelJobs &&
47
+ this.runningTasks.getArray().length < this.maxParallelJobs &&
47
48
  this.status === 'running' &&
48
- this.qeuedTasks.length > 0
49
+ this.queuedTasks.length > 0
49
50
  ) {
50
- const nextJob = this.qeuedTasks.shift();
51
+ const nextJob = this.queuedTasks.shift();
51
52
  this.runningTasks.add(nextJob);
52
- await nextJob.trigger();
53
+ try {
54
+ await nextJob.trigger();
55
+ } catch (err) {
56
+ logger.log('error', `TaskRunner: task "${nextJob.name || 'unnamed'}" failed: ${err instanceof Error ? err.message : String(err)}`);
57
+ }
53
58
  this.runningTasks.remove(nextJob);
54
59
  this.checkExecution();
55
60
  }
@@ -15,6 +15,8 @@ export interface ITaskMetadata {
15
15
  buffered?: boolean;
16
16
  bufferMax?: number;
17
17
  timeout?: number;
18
+ lastError?: string;
19
+ errorCount?: number;
18
20
  }
19
21
 
20
22
  export interface ITaskExecutionReport {
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/taskbuffer',
6
- version: '3.4.0',
6
+ version: '4.0.0',
7
7
  description: 'A flexible task management library supporting TypeScript, allowing for task buffering, scheduling, and execution with dependency management.'
8
8
  }