@cleverbrush/scheduler 1.0.0-beta.6 → 1.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.
package/README.md CHANGED
@@ -1 +1,66 @@
1
1
  # Task scheduler for NodeJS
2
+
3
+ To install the scheduler, run:
4
+
5
+ ```bash
6
+ npm install @cleverbrush/scheduler
7
+ ```
8
+
9
+ This library makes use of Node.js `worker_threads` module to run tasks in parallel. It's tested
10
+ on Node.js v16, but should work on older versions as well.
11
+
12
+ ### An example:
13
+
14
+ ```typescript
15
+ import { JobScheduler } from '@cleverbrush/scheduler';
16
+
17
+ const scheduler = new JobScheduler({
18
+ rootFolder: '/some/path/to/your/tasks/root/folder'
19
+ });
20
+
21
+ scheduler.addJob({
22
+ id: 'my-job-1',
23
+ path: 'path/to/file/under/rootFolder/job1.js',
24
+ schedule: {
25
+ every: 'minute',
26
+ // every 5 minutes
27
+ interval: 5,
28
+ timeout: 1000 * 60 * 4,
29
+ maxRetries: 3
30
+ }
31
+ });
32
+
33
+ scheduler.addJob({
34
+ id: 'my-job-2',
35
+ path: 'another/path/to/file/under/rootFolder/job2.js',
36
+ schedule: {
37
+ every: 'week',
38
+ // every second week
39
+ interval: 2,
40
+ // at Monday, Wednesday and Friday
41
+ dayOfWeek: [1, 3, 5],
42
+ // at 9:30 AM (UTC)
43
+ hour: 9,
44
+ minute 30,
45
+ timeout: 1000 * 60 * 4,
46
+ maxRetries: 3
47
+ }
48
+ });
49
+
50
+ scheduler.start();
51
+ ```
52
+
53
+ This will run `job1.js` and `job2.js` according to the schedules defined in the code above.
54
+ You can subscribe to several events to get notified about the job status:
55
+
56
+ ```typescript
57
+ scheduler.on(
58
+ 'job:start',
59
+ ({ jobId, instanceId, stdout, stderr, startDate, endDate }) => {
60
+ console.log(`Job ${jobId} started`);
61
+ }
62
+ );
63
+
64
+ // other possible events are 'job:end', 'job:error', 'job:timeout', 'job:message'
65
+ // passing the same parameters to callback as above
66
+ ```
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScheduleCalculator = void 0;
4
1
  const MS_IN_DAY = 1000 * 60 * 60 * 24;
5
2
  const MS_IN_WEEK = MS_IN_DAY * 7;
6
3
  const getDayOfWeek = (date) => {
@@ -12,7 +9,7 @@ const getDayOfWeek = (date) => {
12
9
  const getNumberOfDaysInMonth = (date) => {
13
10
  return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0, 0, 0, 0, 0)).getDate();
14
11
  };
15
- class ScheduleCalculator {
12
+ export class ScheduleCalculator {
16
13
  #schedule;
17
14
  #currentDate = new Date();
18
15
  #hour = 9;
@@ -97,7 +94,8 @@ class ScheduleCalculator {
97
94
  }
98
95
  if (this.#schedule.dayOfWeek.includes(getDayOfWeek(date))) {
99
96
  const dateWithTime = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), this.#hour, this.#minute, 0, 0));
100
- if (dateWithTime > this.#schedule.startsOn) {
97
+ if (dateWithTime >
98
+ this.#schedule.startsOn) {
101
99
  candidate = dateWithTime;
102
100
  found = true;
103
101
  break;
@@ -184,6 +182,8 @@ class ScheduleCalculator {
184
182
  }
185
183
  if (typeof span !== 'number')
186
184
  return this.#hasNext;
185
+ if (!this.#next)
186
+ return false;
187
187
  return this.#next.getTime() - new Date().getTime() <= span;
188
188
  }
189
189
  next() {
@@ -206,5 +206,4 @@ class ScheduleCalculator {
206
206
  };
207
207
  }
208
208
  }
209
- exports.ScheduleCalculator = ScheduleCalculator;
210
209
  //# sourceMappingURL=ScheduleCalculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleCalculator.js","sourceRoot":"","sources":["../src/ScheduleCalculator.ts"],"names":[],"mappings":";;;AAEA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;AAEjC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,EAAE;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACxB,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC1C,OAAO,IAAI,IAAI,CACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACzE,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC,CAAC;AAEF,MAAa,kBAAkB;IAC3B,SAAS,CAAW;IACpB,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,KAAK,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC,CAAC;IACZ,UAAU,GAAG,CAAC,CAAC,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IAEjB,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAK,CAAmB;IAExB,YAAY,QAAkB;QAC1B,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAEjC,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC1C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAC/C;QAED,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;aAC9B;YAED,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;gBACrC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;aAClC;YAED,IACI,QAAQ,CAAC,KAAK,KAAK,KAAK;gBACxB,IAAI,IAAI,CACJ,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,EAClC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAC/B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAC9B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,CAAC,EACD,CAAC,CACJ,CACJ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAC3C;gBACE,MAAM,IAAI,GAAG,IAAI,IAAI,CACjB,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,EAClC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAC/B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,EAClC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,CAAC,EACD,CAAC,CACJ,CACJ,CAAC;gBACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC5B;SACJ;QAED,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC5C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;SAC5C;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;QAED,IAAI,UAAU,GACV,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,QAAQ;YACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;YAC1B,CAAC,CAAC,CAAC,CAAC;QAEZ,OAAO,UAAU,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,SAAS,GAAgB,IAAI,CAAC;QAClC,IAAI,SAAiB,CAAC;QAEtB,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAC1B,KAAK,QAAQ;gBACT,SAAS;oBACL,IAAI,CAAC,YAAY,KAAK,CAAC;wBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ;wBACzB,CAAC,CAAC,IAAI,IAAI,CACJ,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,EAClC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAC/B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAC9B,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAC/B,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAC3B,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EACjC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CACzC,CACJ,CAAC;gBACZ,MAAM;YACV,KAAK,KAAK;gBACN;oBACI,MAAM,IAAI,GAAG,IAAI,IAAI,CACjB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;wBACvB,SAAS;4BACL,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;gCACpB,CAAC,CAAC,CAAC;gCACH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAC7C,CAAC;oBAEF,SAAS,GAAG,IAAI,IAAI,CAChB,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,CAAC,EACD,CAAC,CACJ,CACJ,CAAC;iBACL;gBACD,MAAM;YACV,KAAK,MAAM;gBACP;oBACI,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;oBAE7B,GAAG;wBACC,IAAI,KAAK,GAAG,KAAK,CAAC;wBAClB,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;4BAAE,OAAO;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;4BACxC,IAAI,GAAG,IAAI,IAAI,CACX,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAC5C,CAAC;4BACF,IACI,IAAI,CAAC,SAAS,CAAC,MAAM;gCACrB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAC9B;gCACE,OAAO;6BACV;4BACD,IACI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAC7B,YAAY,CAAC,IAAI,CAAC,CACrB,EACH;gCACE,MAAM,YAAY,GAAG,IAAI,IAAI,CACzB,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,CAAC,EACD,CAAC,CACJ,CACJ,CAAC;gCACF,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;oCACxC,SAAS,GAAG,YAAY,CAAC;oCACzB,KAAK,GAAG,IAAI,CAAC;oCACb,MAAM;iCACT;6BACJ;yBACJ;wBAED,IAAI,KAAK;4BAAE,MAAM;wBAEjB,IAAI,GAAG,IAAI,IAAI,CACX,IAAI,CAAC,OAAO,EAAE;4BACV,SAAS;4BACT,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC;gCACnB,CAAC,CAAC,CAAC;gCACH,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;oCAC7B,UAAU,CAAC,CACxB,CAAC;qBACL,QACG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;wBAClB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;wBAClC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EACxB;iBACL;gBACD,MAAM;YACV,KAAK,OAAO;gBACR;oBACI,IAAI,QAAQ,CAAC;oBACb,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;oBAChC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,GAAG;wBACC,MAAM,IAAI,GACN,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM;4BACzB,CAAC,CAAC,sBAAsB,CAClB,IAAI,IAAI,CACJ,IAAI,CAAC,GAAG,CACJ,KAAK,CAAC,cAAc,EAAE,EACtB,KAAK,CAAC,WAAW,EAAE;gCACf,SAAS;oCACL,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;wCACpB,CAAC,CAAC,CAAC;wCACH,CAAC,CAAC,IAAI,CAAC,SAAS;6CACT,QAAQ,CAAC,EAC5B,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,CACJ,CACJ,CACJ;4BACH,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,GAAc,CAAC;wBACzC,QAAQ,GAAG,IAAI,IAAI,CACf,IAAI,CAAC,GAAG,CACJ,KAAK,CAAC,cAAc,EAAE,EACtB,KAAK,CAAC,WAAW,EAAE;4BACf,SAAS;gCACL,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;oCACpB,CAAC,CAAC,CAAC;oCACH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EACtC,IAAI,EACJ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,CAAC,EACD,CAAC,CACJ,CACJ,CAAC;wBACF,SAAS,EAAE,CAAC;qBACf,QACG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;wBAClC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAC/B;oBACF,SAAS,GAAG,QAAQ,CAAC;iBACxB;gBACD,MAAM;YACV,KAAK,MAAM;gBACP;oBACI,IAAI,QAAQ,CAAC;oBACb,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;oBAChC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,GAAG;wBACC,MAAM,IAAI,GACN,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM;4BACzB,CAAC,CAAC,sBAAsB,CAClB,IAAI,IAAI,CACJ,IAAI,CAAC,GAAG,CACJ,KAAK,CAAC,cAAc,EAAE;gCAClB,SAAS;oCACL,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;wCACpB,CAAC,CAAC,CAAC;wCACH,CAAC,CAAC,IAAI,CAAC,SAAS;6CACT,QAAQ,CAAC,EAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EACxB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,CACJ,CACJ,CACJ;4BACH,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,GAAc,CAAC;wBACzC,QAAQ,GAAG,IAAI,IAAI,CACf,IAAI,CAAC,GAAG,CACJ,KAAK,CAAC,cAAc,EAAE;4BAClB,SAAS;gCACL,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC;oCACpB,CAAC,CAAC,CAAC;oCACH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EACxB,IAAI,EACJ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,EACZ,CAAC,EACD,CAAC,CACJ,CACJ,CAAC;wBACF,SAAS,EAAE,CAAC;qBACf,QACG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;wBAClC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAC/B;oBACF,SAAS,GAAG,QAAQ,CAAC;iBACxB;gBACD,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IACI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,WAAW;YAC5C,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EACnC;YACE,OAAO;SACV;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,OAAO,CAAC,IAAa;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAEnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;IAC/D,CAAC;IAEM,IAAI;QAIP,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAa,CAAC;QAElC,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CACxB,MAAM,CAAC,OAAO,EAAE;YACZ,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACvE,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,IAAY,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,KAAK,WAAW,CAAC;QAE5C,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;YAC7D,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;QAED,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,CAAC,YAAY;SAC3B,CAAC;IACN,CAAC;CACJ;AApVD,gDAoVC"}
1
+ {"version":3,"file":"ScheduleCalculator.js","sourceRoot":"","sources":["../src/ScheduleCalculator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -42,6 +42,9 @@ interface IJobScheduler {
42
42
  addJob(job: CreateJobRequest): Promise<void>;
43
43
  removeJob(id: string): Promise<void>;
44
44
  }
45
+ /**
46
+ * Job scheduler class that handles all the scheduling and running of jobs.
47
+ */
45
48
  export declare class JobScheduler extends EventEmitter implements IJobScheduler {
46
49
  protected _rootFolder: string;
47
50
  protected _status: SchedulerStatus;
@@ -49,23 +52,59 @@ export declare class JobScheduler extends EventEmitter implements IJobScheduler
49
52
  protected _checkTimer: any;
50
53
  protected _jobsRepository: IJobRepository;
51
54
  protected _jobProps: Map<string, any>;
55
+ /**
56
+ * Status of the scheduler.
57
+ */
52
58
  get status(): SchedulerStatus;
53
59
  protected set status(val: SchedulerStatus);
54
60
  private scheduleCalculatorCache;
61
+ /**
62
+ * Get the schedule calculator for a job by its id.
63
+ * @param {Job} job
64
+ * @returns {Promise<ScheduleCalculator>}
65
+ */
55
66
  protected getJobSchedule(job: Job): Promise<ScheduleCalculator>;
56
67
  protected runWorkerWithTimeout(file: string, props: any, timeout: number): {
57
68
  promise: Promise<WorkerResult>;
58
69
  worker: Worker;
59
70
  };
60
71
  private readToEnd;
72
+ /**
73
+ * Start a job instance. This will run the job and update the status of the instance.
74
+ * @param {JobInstance} instance - The job instance to start.
75
+ */
61
76
  protected startJobInstance(instance: JobInstance): Promise<void>;
62
77
  protected scheduleJobTo(job: Job, date: Date, index: number): Promise<JobInstance | null>;
63
78
  protected checkForUpcomingJobs(): Promise<void>;
79
+ /**
80
+ * Starts the scheduler (all jobs will be scheduled and executed when it's time).
81
+ */
64
82
  start(): Promise<void>;
83
+ /**
84
+ * Stops the scheduler (all jobs will be stopped and no new jobs will be scheduled).
85
+ */
65
86
  stop(): void;
87
+ /**
88
+ * Checks if job exists by id
89
+ * @param {string} jobId - id of the job
90
+ * @returns {Promise<boolean>} - true if job exists, false otherwise
91
+ */
66
92
  jobExists(jobId: string): Promise<boolean>;
93
+ /**
94
+ * Removes job by its id
95
+ * @param jobId {string} - id of the job
96
+ * @returns {Promise<void>}
97
+ */
67
98
  removeJob(jobId: string): Promise<void>;
99
+ /**
100
+ * Adds job to the scheduler
101
+ * @param job {CreateJobRequest} - job to add
102
+ */
68
103
  addJob(job: CreateJobRequest): Promise<void>;
104
+ /**
105
+ *
106
+ * @param props {JobSchedulerProps} - scheduler properties
107
+ */
69
108
  constructor(props: JobSchedulerProps);
70
109
  on<T extends keyof Events>(name: T, callback: Events[T]): this;
71
110
  }
package/dist/index.js CHANGED
@@ -1,34 +1,33 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.JobScheduler = exports.Schemas = exports.ScheduleCalculator = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const events_1 = require("events");
9
- const stream_1 = require("stream");
10
- const promises_1 = require("fs/promises");
11
- const path_1 = require("path");
12
- const worker_threads_1 = require("worker_threads");
13
- const types_js_1 = require("./types.js");
14
- Object.defineProperty(exports, "Schemas", { enumerable: true, get: function () { return types_js_1.Schemas; } });
15
- const ScheduleCalculator_js_1 = require("./ScheduleCalculator.js");
16
- Object.defineProperty(exports, "ScheduleCalculator", { enumerable: true, get: function () { return ScheduleCalculator_js_1.ScheduleCalculator; } });
17
- const jobRepository_js_1 = require("./jobRepository.js");
1
+ import fs from 'fs';
2
+ import { EventEmitter } from 'events';
3
+ import { PassThrough } from 'stream';
4
+ import { access as fsAccess } from 'fs/promises';
5
+ import { join as pathJoin } from 'path';
6
+ import { Worker } from 'worker_threads';
7
+ import { Schemas } from './types.js';
8
+ import { ScheduleCalculator } from './ScheduleCalculator.js';
9
+ import { InMemoryJobRepository } from './jobRepository.js';
10
+ export { ScheduleCalculator, Schemas };
18
11
  const MAX_BUFFER_SIZE = 10 * 1024 * 1024; // 10MB
19
12
  const CHECK_INTERVAL = 1000 * 10; // every 10 seconds
20
13
  // const SCHEDULE_JOB_SPAN = 1000 * 60 * 60; // 1 hour
21
14
  const SCHEDULE_JOB_SPAN = 1000 * 60; // 1 hour
22
15
  const DEFAULT_JOB_TIMEOUT = 1000 * 20; // 20 seconds
23
16
  const DEFAULT_MAX_CONSEQUENT_FAILS = 3;
24
- const DEFAULT_MAX_RETRIES = 0;
25
- class JobScheduler extends events_1.EventEmitter {
17
+ const DEFAULT_MAX_RETRIES = 2;
18
+ /**
19
+ * Job scheduler class that handles all the scheduling and running of jobs.
20
+ */
21
+ export class JobScheduler extends EventEmitter {
26
22
  _rootFolder;
27
23
  _status = 'stopped';
28
24
  _defaultTimezone;
29
25
  _checkTimer;
30
- _jobsRepository = new jobRepository_js_1.InMemoryJobRepository();
26
+ _jobsRepository = new InMemoryJobRepository();
31
27
  _jobProps = new Map();
28
+ /**
29
+ * Status of the scheduler.
30
+ */
32
31
  get status() {
33
32
  return this._status;
34
33
  }
@@ -38,6 +37,11 @@ class JobScheduler extends events_1.EventEmitter {
38
37
  this._status = val;
39
38
  }
40
39
  scheduleCalculatorCache = new Map();
40
+ /**
41
+ * Get the schedule calculator for a job by its id.
42
+ * @param {Job} job
43
+ * @returns {Promise<ScheduleCalculator>}
44
+ */
41
45
  async getJobSchedule(job) {
42
46
  if (this.scheduleCalculatorCache.has(job.id)) {
43
47
  return this.scheduleCalculatorCache.get(job.id);
@@ -51,12 +55,12 @@ class JobScheduler extends events_1.EventEmitter {
51
55
  if (typeof job.successfullTimesRunned === 'number') {
52
56
  schedule.skipFirst = job.successfullTimesRunned - 1;
53
57
  }
54
- const res = new ScheduleCalculator_js_1.ScheduleCalculator(schedule);
58
+ const res = new ScheduleCalculator(schedule);
55
59
  this.scheduleCalculatorCache.set(job.id, res);
56
60
  return res;
57
61
  }
58
62
  runWorkerWithTimeout(file, props, timeout) {
59
- const worker = new worker_threads_1.Worker(file, {
63
+ const worker = new Worker(file, {
60
64
  workerData: props,
61
65
  execArgv: ['--unhandled-rejections=strict'],
62
66
  stderr: true,
@@ -106,6 +110,10 @@ class JobScheduler extends events_1.EventEmitter {
106
110
  source.on('error', (err) => rej(err));
107
111
  });
108
112
  }
113
+ /**
114
+ * Start a job instance. This will run the job and update the status of the instance.
115
+ * @param {JobInstance} instance - The job instance to start.
116
+ */
109
117
  async startJobInstance(instance) {
110
118
  const startDate = new Date();
111
119
  instance = await this._jobsRepository.saveInstance({
@@ -116,7 +124,7 @@ class JobScheduler extends events_1.EventEmitter {
116
124
  let status, exitCode;
117
125
  try {
118
126
  const job = await this._jobsRepository.getJobById(instance.jobId);
119
- const fileName = (0, path_1.join)(this._rootFolder, job.path);
127
+ const fileName = pathJoin(this._rootFolder, job.path);
120
128
  const props = this._jobProps.get(job.id);
121
129
  let finalProps = typeof props === 'function' ? props() : props;
122
130
  if (finalProps instanceof Promise) {
@@ -127,22 +135,22 @@ class JobScheduler extends events_1.EventEmitter {
127
135
  status: 'running'
128
136
  });
129
137
  const { promise, worker } = this.runWorkerWithTimeout(fileName, finalProps, job.timeout);
130
- const stdOutPass = worker.stdout.pipe(new stream_1.PassThrough({
138
+ const stdOutPass = worker.stdout.pipe(new PassThrough({
131
139
  highWaterMark: MAX_BUFFER_SIZE
132
140
  }));
133
- const stdErrPass = worker.stderr.pipe(new stream_1.PassThrough({
141
+ const stdErrPass = worker.stderr.pipe(new PassThrough({
134
142
  highWaterMark: MAX_BUFFER_SIZE
135
143
  }));
136
- const stdOutForJobStart = worker.stdout.pipe(new stream_1.PassThrough({
144
+ const stdOutForJobStart = worker.stdout.pipe(new PassThrough({
137
145
  highWaterMark: MAX_BUFFER_SIZE
138
146
  }));
139
- const stdErrForJobStart = worker.stderr.pipe(new stream_1.PassThrough({
147
+ const stdErrForJobStart = worker.stderr.pipe(new PassThrough({
140
148
  highWaterMark: MAX_BUFFER_SIZE
141
149
  }));
142
- const stdOutForJobEnd = worker.stdout.pipe(new stream_1.PassThrough({
150
+ const stdOutForJobEnd = worker.stdout.pipe(new PassThrough({
143
151
  highWaterMark: MAX_BUFFER_SIZE
144
152
  }));
145
- const stdErrForJobEnd = worker.stderr.pipe(new stream_1.PassThrough({
153
+ const stdErrForJobEnd = worker.stderr.pipe(new PassThrough({
146
154
  highWaterMark: MAX_BUFFER_SIZE
147
155
  }));
148
156
  worker.on('message', (value) => {
@@ -300,6 +308,9 @@ class JobScheduler extends events_1.EventEmitter {
300
308
  }
301
309
  }
302
310
  }
311
+ /**
312
+ * Starts the scheduler (all jobs will be scheduled and executed when it's time).
313
+ */
303
314
  async start() {
304
315
  if (this._status === 'started') {
305
316
  throw new Error('Scheduler is already started');
@@ -308,6 +319,9 @@ class JobScheduler extends events_1.EventEmitter {
308
319
  this._checkTimer = setInterval(this.checkForUpcomingJobs.bind(this), CHECK_INTERVAL);
309
320
  // TODO: add logic
310
321
  }
322
+ /**
323
+ * Stops the scheduler (all jobs will be stopped and no new jobs will be scheduled).
324
+ */
311
325
  stop() {
312
326
  if (this._status === 'stopped') {
313
327
  throw new Error('Scheduler is already stopped');
@@ -316,22 +330,36 @@ class JobScheduler extends events_1.EventEmitter {
316
330
  this.status = 'stopped';
317
331
  // TODO: add logic
318
332
  }
333
+ /**
334
+ * Checks if job exists by id
335
+ * @param {string} jobId - id of the job
336
+ * @returns {Promise<boolean>} - true if job exists, false otherwise
337
+ */
319
338
  async jobExists(jobId) {
320
339
  return (await this._jobsRepository.getJobById(jobId)) !== null;
321
340
  }
341
+ /**
342
+ * Removes job by its id
343
+ * @param jobId {string} - id of the job
344
+ * @returns {Promise<void>}
345
+ */
322
346
  async removeJob(jobId) {
323
347
  if (typeof jobId !== 'string' || !jobId) {
324
348
  throw new Error('id is required');
325
349
  }
326
350
  await this._jobsRepository.removeJob(jobId);
327
351
  }
352
+ /**
353
+ * Adds job to the scheduler
354
+ * @param job {CreateJobRequest} - job to add
355
+ */
328
356
  async addJob(job) {
329
- const validationResult = await types_js_1.schemaRegistry.schemas.Models.CreateJobRequest.validate(job);
357
+ const validationResult = await Schemas.CreateJobRequestSchema.validate(job);
330
358
  if (!validationResult.valid) {
331
359
  throw new Error(`Invalid CreateJobRequest: ${validationResult.errors?.join('; ')}`);
332
360
  }
333
- const path = (0, path_1.join)(this._rootFolder, job.path);
334
- await (0, promises_1.access)(path, fs_1.default.constants.R_OK);
361
+ const path = pathJoin(this._rootFolder, job.path);
362
+ await fsAccess(path, fs.constants.R_OK);
335
363
  this._jobProps.set(job.id, job.props);
336
364
  await this._jobsRepository.createJob({
337
365
  id: job.id,
@@ -350,6 +378,10 @@ class JobScheduler extends events_1.EventEmitter {
350
378
  : DEFAULT_MAX_RETRIES
351
379
  });
352
380
  }
381
+ /**
382
+ *
383
+ * @param props {JobSchedulerProps} - scheduler properties
384
+ */
353
385
  constructor(props) {
354
386
  super();
355
387
  if (typeof props.rootFolder !== 'string') {
@@ -372,5 +404,4 @@ class JobScheduler extends events_1.EventEmitter {
372
404
  return this;
373
405
  }
374
406
  }
375
- exports.JobScheduler = JobScheduler;
376
407
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryJobRepository = void 0;
4
- class InMemoryJobRepository {
1
+ export class InMemoryJobRepository {
5
2
  _jobs = [];
6
3
  _jobInstances = [];
7
4
  _instanceId = 1;
@@ -86,5 +83,4 @@ class InMemoryJobRepository {
86
83
  // console.table(this._jobInstances);
87
84
  }
88
85
  }
89
- exports.InMemoryJobRepository = InMemoryJobRepository;
90
86
  //# sourceMappingURL=jobRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobRepository.js","sourceRoot":"","sources":["../src/jobRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobRepository.js","sourceRoot":"","sources":["../src/jobRepository.ts"],"names":[],"mappings":"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"}