@cleverbrush/scheduler 1.0.0-beta.4 → 1.0.0-beta.6

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.
@@ -53,8 +53,10 @@ class ScheduleCalculator {
53
53
  this.#next = next;
54
54
  this.#hasNext = true;
55
55
  }
56
- let leftToSkip = this.#schedule.startingFromIndex || 1;
57
- while (leftToSkip-- > 1 && this.#hasNext) {
56
+ let leftToSkip = typeof this.#schedule.skipFirst === 'number'
57
+ ? this.#schedule.skipFirst
58
+ : 0;
59
+ while (leftToSkip-- > 0 && this.#hasNext) {
58
60
  this.next();
59
61
  }
60
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleCalculator.js","sourceRoot":"","sources":["../src/ScheduleCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScheduleCalculator.js","sourceRoot":"","sources":["../src/ScheduleCalculator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,35 +1,41 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
+ /// <reference types="node" />
3
4
  import { EventEmitter } from 'events';
4
5
  import { Readable } from 'stream';
6
+ import { Worker } from 'worker_threads';
5
7
  import { JobSchedulerProps, CreateJobRequest, SchedulerStatus, Schedule, Job, JobInstance, JobInstanceStatus, Schemas } from './types.js';
6
8
  import { ScheduleCalculator } from './ScheduleCalculator.js';
7
9
  import { IJobRepository } from './jobRepository.js';
8
10
  export { ScheduleCalculator, Schedule as TaskSchedule, Schemas };
9
- declare type WorkerResult = {
11
+ type WorkerResult = {
10
12
  status: JobInstanceStatus;
11
13
  exitCode: number;
12
14
  error?: Error;
13
15
  };
14
- declare type JobStartItem = {
16
+ type JobStartItem = {
15
17
  jobId: string;
16
18
  instanceId: number;
17
19
  stdout: Readable;
18
20
  stderr: Readable;
19
21
  startDate: Date;
20
22
  };
21
- declare type JobEndItem = JobStartItem & {
23
+ type JobEndItem = JobStartItem & {
22
24
  endDate: Date;
23
25
  };
24
- declare type JobErrorItem = JobStartItem & {
26
+ type JobErrorItem = JobStartItem & {
25
27
  endDate: Date;
26
28
  error?: Error;
27
29
  };
28
- declare type Events = {
30
+ type JobMessageItem = Omit<JobStartItem, 'stdout' | 'stderr'> & {
31
+ value: any;
32
+ };
33
+ type Events = {
29
34
  'job:start': (job: JobStartItem) => any;
30
35
  'job:end': (job: JobEndItem) => any;
31
36
  'job:error': (job: JobErrorItem) => any;
32
37
  'job:timeout': (job: JobErrorItem) => any;
38
+ 'job:message': (msg: JobMessageItem) => any;
33
39
  };
34
40
  interface IJobScheduler {
35
41
  on<T extends keyof Events>(name: T, callback: Events[T]): this;
@@ -49,8 +55,7 @@ export declare class JobScheduler extends EventEmitter implements IJobScheduler
49
55
  protected getJobSchedule(job: Job): Promise<ScheduleCalculator>;
50
56
  protected runWorkerWithTimeout(file: string, props: any, timeout: number): {
51
57
  promise: Promise<WorkerResult>;
52
- stderr: Readable;
53
- stdout: Readable;
58
+ worker: Worker;
54
59
  };
55
60
  private readToEnd;
56
61
  protected startJobInstance(instance: JobInstance): Promise<void>;
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ const CHECK_INTERVAL = 1000 * 10; // every 10 seconds
21
21
  const SCHEDULE_JOB_SPAN = 1000 * 60; // 1 hour
22
22
  const DEFAULT_JOB_TIMEOUT = 1000 * 20; // 20 seconds
23
23
  const DEFAULT_MAX_CONSEQUENT_FAILS = 3;
24
+ const DEFAULT_MAX_RETRIES = 0;
24
25
  class JobScheduler extends events_1.EventEmitter {
25
26
  _rootFolder;
26
27
  _status = 'stopped';
@@ -48,7 +49,7 @@ class JobScheduler extends events_1.EventEmitter {
48
49
  schedule.startsOn = job.firstInstanceEndedAt;
49
50
  }
50
51
  if (typeof job.successfullTimesRunned === 'number') {
51
- schedule.startingFromIndex = job.successfullTimesRunned + 1;
52
+ schedule.skipFirst = job.successfullTimesRunned - 1;
52
53
  }
53
54
  const res = new ScheduleCalculator_js_1.ScheduleCalculator(schedule);
54
55
  this.scheduleCalculatorCache.set(job.id, res);
@@ -94,8 +95,7 @@ class JobScheduler extends events_1.EventEmitter {
94
95
  });
95
96
  return {
96
97
  promise,
97
- stderr: worker.stderr,
98
- stdout: worker.stdout
98
+ worker
99
99
  };
100
100
  }
101
101
  readToEnd(source) {
@@ -126,25 +126,33 @@ class JobScheduler extends events_1.EventEmitter {
126
126
  ...instance,
127
127
  status: 'running'
128
128
  });
129
- const { promise, stderr, stdout } = this.runWorkerWithTimeout(fileName, finalProps, job.timeout);
130
- const stdOutPass = stdout.pipe(new stream_1.PassThrough({
129
+ const { promise, worker } = this.runWorkerWithTimeout(fileName, finalProps, job.timeout);
130
+ const stdOutPass = worker.stdout.pipe(new stream_1.PassThrough({
131
131
  highWaterMark: MAX_BUFFER_SIZE
132
132
  }));
133
- const stdErrPass = stderr.pipe(new stream_1.PassThrough({
133
+ const stdErrPass = worker.stderr.pipe(new stream_1.PassThrough({
134
134
  highWaterMark: MAX_BUFFER_SIZE
135
135
  }));
136
- const stdOutForJobStart = stdout.pipe(new stream_1.PassThrough({
136
+ const stdOutForJobStart = worker.stdout.pipe(new stream_1.PassThrough({
137
137
  highWaterMark: MAX_BUFFER_SIZE
138
138
  }));
139
- const stdErrForJobStart = stderr.pipe(new stream_1.PassThrough({
139
+ const stdErrForJobStart = worker.stderr.pipe(new stream_1.PassThrough({
140
140
  highWaterMark: MAX_BUFFER_SIZE
141
141
  }));
142
- const stdOutForJobEnd = stdout.pipe(new stream_1.PassThrough({
142
+ const stdOutForJobEnd = worker.stdout.pipe(new stream_1.PassThrough({
143
143
  highWaterMark: MAX_BUFFER_SIZE
144
144
  }));
145
- const stdErrForJobEnd = stderr.pipe(new stream_1.PassThrough({
145
+ const stdErrForJobEnd = worker.stderr.pipe(new stream_1.PassThrough({
146
146
  highWaterMark: MAX_BUFFER_SIZE
147
147
  }));
148
+ worker.on('message', (value) => {
149
+ this.emit('job:message', {
150
+ instanceId: instance.id,
151
+ jobId: job.id,
152
+ startDate,
153
+ value
154
+ });
155
+ });
148
156
  this.emit('job:start', {
149
157
  instanceId: instance.id,
150
158
  jobId: job.id,
@@ -226,8 +234,11 @@ class JobScheduler extends events_1.EventEmitter {
226
234
  }
227
235
  }
228
236
  await this._jobsRepository.saveJob(job);
229
- if (shouldRetry) {
230
- await this.startJobInstance(instance);
237
+ if (shouldRetry && instance.retryIndex < instance.maxRetries) {
238
+ await this.startJobInstance({
239
+ ...instance,
240
+ retryIndex: instance.retryIndex + 1
241
+ });
231
242
  }
232
243
  }
233
244
  }
@@ -243,7 +254,9 @@ class JobScheduler extends events_1.EventEmitter {
243
254
  scheduledTo: date,
244
255
  status: 'scheduled',
245
256
  timeout: job.timeout,
246
- index
257
+ index,
258
+ retryIndex: 0,
259
+ maxRetries: job.maxRetries
247
260
  });
248
261
  timer = setTimeout(async () => {
249
262
  const actualJob = await this._jobsRepository.getJobById(job.id);
@@ -331,7 +344,10 @@ class JobScheduler extends events_1.EventEmitter {
331
344
  successfullTimesRunned: 0,
332
345
  maxConsequentFails: typeof job.maxConsequentFails === 'number'
333
346
  ? job.maxConsequentFails
334
- : DEFAULT_MAX_CONSEQUENT_FAILS
347
+ : DEFAULT_MAX_CONSEQUENT_FAILS,
348
+ maxRetries: typeof job.maxRetries === 'number'
349
+ ? job.maxRetries
350
+ : DEFAULT_MAX_RETRIES
335
351
  });
336
352
  }
337
353
  constructor(props) {
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,6 +1,6 @@
1
1
  import { Job, JobInstance, JobInstanceStatus, JobStatus } from './types.js';
2
- declare type AddJobRequest = Omit<Job, 'status'>;
3
- declare type AddJobInstanceRequest = Omit<JobInstance, 'id' | 'jobId'>;
2
+ type AddJobRequest = Omit<Job, 'status'>;
3
+ type AddJobInstanceRequest = Omit<JobInstance, 'id' | 'jobId'>;
4
4
  export interface IJobRepository {
5
5
  getJobs(): Promise<Job[]>;
6
6
  getJobById(jobId: string): Promise<Job>;
package/dist/types.d.ts CHANGED
@@ -9,14 +9,14 @@ export declare const schemaRegistry: SchemaRegistry<{
9
9
  startsOn: ["object", false, false, true, {}, Date];
10
10
  endsOn: ["object", false, false, true, {}, Date];
11
11
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
12
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
12
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
13
13
  }, undefined];
14
14
  "Models.TaskScheduleMinute": ["object", true, false, true, {
15
15
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
16
16
  startsOn: ["object", false, false, true, {}, Date];
17
17
  endsOn: ["object", false, false, true, {}, Date];
18
18
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
19
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
19
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
20
20
  every: ["string", true, false, undefined, undefined, "minute"];
21
21
  }, undefined];
22
22
  "Models.TaskScheduleDay": ["object", true, false, true, {
@@ -26,7 +26,7 @@ export declare const schemaRegistry: SchemaRegistry<{
26
26
  startsOn: ["object", false, false, true, {}, Date];
27
27
  endsOn: ["object", false, false, true, {}, Date];
28
28
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
29
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
29
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
30
30
  every: ["string", true, false, undefined, undefined, "day"];
31
31
  }, undefined];
32
32
  "Models.TaskScheduleWeek": ["object", true, false, true, {
@@ -36,7 +36,7 @@ export declare const schemaRegistry: SchemaRegistry<{
36
36
  startsOn: ["object", false, false, true, {}, Date];
37
37
  endsOn: ["object", false, false, true, {}, Date];
38
38
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
39
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
39
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
40
40
  every: ["string", true, false, undefined, undefined, "week"];
41
41
  dayOfWeek: ["array", true, false, ["number", true, false, 1, 7, undefined, true, true, undefined], 7, 1];
42
42
  }, undefined];
@@ -47,7 +47,7 @@ export declare const schemaRegistry: SchemaRegistry<{
47
47
  startsOn: ["object", false, false, true, {}, Date];
48
48
  endsOn: ["object", false, false, true, {}, Date];
49
49
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
50
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
50
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
51
51
  every: ["string", true, false, undefined, undefined, "month"];
52
52
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
53
53
  }, undefined];
@@ -58,7 +58,7 @@ export declare const schemaRegistry: SchemaRegistry<{
58
58
  startsOn: ["object", false, false, true, {}, Date];
59
59
  endsOn: ["object", false, false, true, {}, Date];
60
60
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
61
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
61
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
62
62
  every: ["string", true, false, undefined, undefined, "year"];
63
63
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
64
64
  month: ["number", true, false, 1, 12, undefined, true, true, undefined];
@@ -68,7 +68,7 @@ export declare const schemaRegistry: SchemaRegistry<{
68
68
  startsOn: ["object", false, false, true, {}, Date];
69
69
  endsOn: ["object", false, false, true, {}, Date];
70
70
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
71
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
71
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
72
72
  every: ["string", true, false, undefined, undefined, "minute"];
73
73
  }, undefined], ["object", true, false, true, {
74
74
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -77,7 +77,7 @@ export declare const schemaRegistry: SchemaRegistry<{
77
77
  startsOn: ["object", false, false, true, {}, Date];
78
78
  endsOn: ["object", false, false, true, {}, Date];
79
79
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
80
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
80
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
81
81
  every: ["string", true, false, undefined, undefined, "day"];
82
82
  }, undefined], ["object", true, false, true, {
83
83
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -86,7 +86,7 @@ export declare const schemaRegistry: SchemaRegistry<{
86
86
  startsOn: ["object", false, false, true, {}, Date];
87
87
  endsOn: ["object", false, false, true, {}, Date];
88
88
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
89
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
89
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
90
90
  every: ["string", true, false, undefined, undefined, "week"];
91
91
  dayOfWeek: ["array", true, false, ["number", true, false, 1, 7, undefined, true, true, undefined], 7, 1];
92
92
  }, undefined], ["object", true, false, true, {
@@ -96,7 +96,7 @@ export declare const schemaRegistry: SchemaRegistry<{
96
96
  startsOn: ["object", false, false, true, {}, Date];
97
97
  endsOn: ["object", false, false, true, {}, Date];
98
98
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
99
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
99
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
100
100
  every: ["string", true, false, undefined, undefined, "month"];
101
101
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
102
102
  }, undefined], ["object", true, false, true, {
@@ -106,7 +106,7 @@ export declare const schemaRegistry: SchemaRegistry<{
106
106
  startsOn: ["object", false, false, true, {}, Date];
107
107
  endsOn: ["object", false, false, true, {}, Date];
108
108
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
109
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
109
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
110
110
  every: ["string", true, false, undefined, undefined, "year"];
111
111
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
112
112
  month: ["number", true, false, 1, 12, undefined, true, true, undefined];
@@ -119,7 +119,7 @@ export declare const schemaRegistry: SchemaRegistry<{
119
119
  startsOn: ["object", false, false, true, {}, Date];
120
120
  endsOn: ["object", false, false, true, {}, Date];
121
121
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
122
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
122
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
123
123
  every: ["string", true, false, undefined, undefined, "minute"];
124
124
  }, undefined], ["object", true, false, true, {
125
125
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -128,7 +128,7 @@ export declare const schemaRegistry: SchemaRegistry<{
128
128
  startsOn: ["object", false, false, true, {}, Date];
129
129
  endsOn: ["object", false, false, true, {}, Date];
130
130
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
131
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
131
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
132
132
  every: ["string", true, false, undefined, undefined, "day"];
133
133
  }, undefined], ["object", true, false, true, {
134
134
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -137,7 +137,7 @@ export declare const schemaRegistry: SchemaRegistry<{
137
137
  startsOn: ["object", false, false, true, {}, Date];
138
138
  endsOn: ["object", false, false, true, {}, Date];
139
139
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
140
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
140
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
141
141
  every: ["string", true, false, undefined, undefined, "week"];
142
142
  dayOfWeek: ["array", true, false, ["number", true, false, 1, 7, undefined, true, true, undefined], 7, 1];
143
143
  }, undefined], ["object", true, false, true, {
@@ -147,7 +147,7 @@ export declare const schemaRegistry: SchemaRegistry<{
147
147
  startsOn: ["object", false, false, true, {}, Date];
148
148
  endsOn: ["object", false, false, true, {}, Date];
149
149
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
150
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
150
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
151
151
  every: ["string", true, false, undefined, undefined, "month"];
152
152
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
153
153
  }, undefined], ["object", true, false, true, {
@@ -157,18 +157,19 @@ export declare const schemaRegistry: SchemaRegistry<{
157
157
  startsOn: ["object", false, false, true, {}, Date];
158
158
  endsOn: ["object", false, false, true, {}, Date];
159
159
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
160
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
160
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
161
161
  every: ["string", true, false, undefined, undefined, "year"];
162
162
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
163
163
  month: ["number", true, false, 1, 12, undefined, true, true, undefined];
164
164
  }, undefined]]];
165
165
  timeout: ["number", false, false, 0, undefined, undefined, true, true, undefined];
166
- props: ["union", false, false, [["object", true, false, false, {}, undefined], ["function", true, false]]];
166
+ props: ["union", false, false, [["object", true, false, false, {}, undefined], ["function", true, false, undefined]]];
167
167
  maxConsequentFails: ["number", false, false, undefined, undefined, undefined, true, true, undefined];
168
+ maxRetries: ["number", false, false, 0, undefined, undefined, true, true, undefined];
168
169
  }, undefined];
169
170
  }>;
170
- export declare type Schedule = InferType<typeof schemaRegistry.schemas.Models.Schedule.schema>;
171
- export declare type CreateJobRequest = InferType<typeof schemaRegistry.schemas.Models.CreateJobRequest.schema>;
171
+ export type Schedule = InferType<typeof schemaRegistry.schemas.Models.Schedule.schema>;
172
+ export type CreateJobRequest = InferType<typeof schemaRegistry.schemas.Models.CreateJobRequest.schema>;
172
173
  export declare const Schemas: SchemaRegistry<{
173
174
  "Common.Date": ["object", true, false, true, {}, Date];
174
175
  "Templates.Schedule": ["object", true, false, true, {
@@ -178,14 +179,14 @@ export declare const Schemas: SchemaRegistry<{
178
179
  startsOn: ["object", false, false, true, {}, Date];
179
180
  endsOn: ["object", false, false, true, {}, Date];
180
181
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
181
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
182
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
182
183
  }, undefined];
183
184
  "Models.TaskScheduleMinute": ["object", true, false, true, {
184
185
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
185
186
  startsOn: ["object", false, false, true, {}, Date];
186
187
  endsOn: ["object", false, false, true, {}, Date];
187
188
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
188
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
189
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
189
190
  every: ["string", true, false, undefined, undefined, "minute"];
190
191
  }, undefined];
191
192
  "Models.TaskScheduleDay": ["object", true, false, true, {
@@ -195,7 +196,7 @@ export declare const Schemas: SchemaRegistry<{
195
196
  startsOn: ["object", false, false, true, {}, Date];
196
197
  endsOn: ["object", false, false, true, {}, Date];
197
198
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
198
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
199
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
199
200
  every: ["string", true, false, undefined, undefined, "day"];
200
201
  }, undefined];
201
202
  "Models.TaskScheduleWeek": ["object", true, false, true, {
@@ -205,7 +206,7 @@ export declare const Schemas: SchemaRegistry<{
205
206
  startsOn: ["object", false, false, true, {}, Date];
206
207
  endsOn: ["object", false, false, true, {}, Date];
207
208
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
208
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
209
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
209
210
  every: ["string", true, false, undefined, undefined, "week"];
210
211
  dayOfWeek: ["array", true, false, ["number", true, false, 1, 7, undefined, true, true, undefined], 7, 1];
211
212
  }, undefined];
@@ -216,7 +217,7 @@ export declare const Schemas: SchemaRegistry<{
216
217
  startsOn: ["object", false, false, true, {}, Date];
217
218
  endsOn: ["object", false, false, true, {}, Date];
218
219
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
219
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
220
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
220
221
  every: ["string", true, false, undefined, undefined, "month"];
221
222
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
222
223
  }, undefined];
@@ -227,7 +228,7 @@ export declare const Schemas: SchemaRegistry<{
227
228
  startsOn: ["object", false, false, true, {}, Date];
228
229
  endsOn: ["object", false, false, true, {}, Date];
229
230
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
230
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
231
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
231
232
  every: ["string", true, false, undefined, undefined, "year"];
232
233
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
233
234
  month: ["number", true, false, 1, 12, undefined, true, true, undefined];
@@ -237,7 +238,7 @@ export declare const Schemas: SchemaRegistry<{
237
238
  startsOn: ["object", false, false, true, {}, Date];
238
239
  endsOn: ["object", false, false, true, {}, Date];
239
240
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
240
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
241
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
241
242
  every: ["string", true, false, undefined, undefined, "minute"];
242
243
  }, undefined], ["object", true, false, true, {
243
244
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -246,7 +247,7 @@ export declare const Schemas: SchemaRegistry<{
246
247
  startsOn: ["object", false, false, true, {}, Date];
247
248
  endsOn: ["object", false, false, true, {}, Date];
248
249
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
249
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
250
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
250
251
  every: ["string", true, false, undefined, undefined, "day"];
251
252
  }, undefined], ["object", true, false, true, {
252
253
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -255,7 +256,7 @@ export declare const Schemas: SchemaRegistry<{
255
256
  startsOn: ["object", false, false, true, {}, Date];
256
257
  endsOn: ["object", false, false, true, {}, Date];
257
258
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
258
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
259
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
259
260
  every: ["string", true, false, undefined, undefined, "week"];
260
261
  dayOfWeek: ["array", true, false, ["number", true, false, 1, 7, undefined, true, true, undefined], 7, 1];
261
262
  }, undefined], ["object", true, false, true, {
@@ -265,7 +266,7 @@ export declare const Schemas: SchemaRegistry<{
265
266
  startsOn: ["object", false, false, true, {}, Date];
266
267
  endsOn: ["object", false, false, true, {}, Date];
267
268
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
268
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
269
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
269
270
  every: ["string", true, false, undefined, undefined, "month"];
270
271
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
271
272
  }, undefined], ["object", true, false, true, {
@@ -275,7 +276,7 @@ export declare const Schemas: SchemaRegistry<{
275
276
  startsOn: ["object", false, false, true, {}, Date];
276
277
  endsOn: ["object", false, false, true, {}, Date];
277
278
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
278
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
279
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
279
280
  every: ["string", true, false, undefined, undefined, "year"];
280
281
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
281
282
  month: ["number", true, false, 1, 12, undefined, true, true, undefined];
@@ -288,7 +289,7 @@ export declare const Schemas: SchemaRegistry<{
288
289
  startsOn: ["object", false, false, true, {}, Date];
289
290
  endsOn: ["object", false, false, true, {}, Date];
290
291
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
291
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
292
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
292
293
  every: ["string", true, false, undefined, undefined, "minute"];
293
294
  }, undefined], ["object", true, false, true, {
294
295
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -297,7 +298,7 @@ export declare const Schemas: SchemaRegistry<{
297
298
  startsOn: ["object", false, false, true, {}, Date];
298
299
  endsOn: ["object", false, false, true, {}, Date];
299
300
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
300
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
301
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
301
302
  every: ["string", true, false, undefined, undefined, "day"];
302
303
  }, undefined], ["object", true, false, true, {
303
304
  interval: ["number", true, false, 1, 356, undefined, true, true, undefined];
@@ -306,7 +307,7 @@ export declare const Schemas: SchemaRegistry<{
306
307
  startsOn: ["object", false, false, true, {}, Date];
307
308
  endsOn: ["object", false, false, true, {}, Date];
308
309
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
309
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
310
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
310
311
  every: ["string", true, false, undefined, undefined, "week"];
311
312
  dayOfWeek: ["array", true, false, ["number", true, false, 1, 7, undefined, true, true, undefined], 7, 1];
312
313
  }, undefined], ["object", true, false, true, {
@@ -316,7 +317,7 @@ export declare const Schemas: SchemaRegistry<{
316
317
  startsOn: ["object", false, false, true, {}, Date];
317
318
  endsOn: ["object", false, false, true, {}, Date];
318
319
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
319
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
320
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
320
321
  every: ["string", true, false, undefined, undefined, "month"];
321
322
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
322
323
  }, undefined], ["object", true, false, true, {
@@ -326,17 +327,18 @@ export declare const Schemas: SchemaRegistry<{
326
327
  startsOn: ["object", false, false, true, {}, Date];
327
328
  endsOn: ["object", false, false, true, {}, Date];
328
329
  maxOccurences: ["number", false, false, 1, undefined, undefined, true, true, undefined];
329
- startingFromIndex: ["number", false, false, 1, undefined, undefined, true, true, undefined];
330
+ skipFirst: ["number", false, false, 1, undefined, undefined, true, true, undefined];
330
331
  every: ["string", true, false, undefined, undefined, "year"];
331
332
  day: ["union", true, false, [["string", true, false, undefined, undefined, "last"], ["number", true, false, 1, 28, undefined, true, true, undefined]]];
332
333
  month: ["number", true, false, 1, 12, undefined, true, true, undefined];
333
334
  }, undefined]]];
334
335
  timeout: ["number", false, false, 0, undefined, undefined, true, true, undefined];
335
- props: ["union", false, false, [["object", true, false, false, {}, undefined], ["function", true, false]]];
336
+ props: ["union", false, false, [["object", true, false, false, {}, undefined], ["function", true, false, undefined]]];
336
337
  maxConsequentFails: ["number", false, false, undefined, undefined, undefined, true, true, undefined];
338
+ maxRetries: ["number", false, false, 0, undefined, undefined, true, true, undefined];
337
339
  }, undefined];
338
340
  }>;
339
- export declare type Job = {
341
+ export type Job = {
340
342
  id: string;
341
343
  status: JobStatus;
342
344
  schedule: Schedule;
@@ -349,8 +351,9 @@ export declare type Job = {
349
351
  successfullTimesRunned?: number;
350
352
  consequentFailsCount: number;
351
353
  maxConsequentFails: number;
354
+ maxRetries: number;
352
355
  };
353
- export declare type JobInstance = {
356
+ export type JobInstance = {
354
357
  id: number;
355
358
  jobId: string;
356
359
  index: number;
@@ -362,12 +365,14 @@ export declare type JobInstance = {
362
365
  stdOut?: string;
363
366
  stdErr?: string;
364
367
  exitCode?: number;
368
+ retryIndex: number;
369
+ maxRetries: number;
365
370
  };
366
- export declare type JobSchedulerProps = {
371
+ export type JobSchedulerProps = {
367
372
  rootFolder: string;
368
373
  defaultTimeZone?: string;
369
374
  persistRepository?: IJobRepository;
370
375
  };
371
- export declare type JobStatus = 'active' | 'disabled' | 'finished';
372
- export declare type SchedulerStatus = 'started' | 'stopped';
373
- export declare type JobInstanceStatus = 'running' | 'errored' | 'succeeded' | 'scheduled' | 'timedout' | 'canceled';
376
+ export type JobStatus = 'active' | 'disabled' | 'finished';
377
+ export type SchedulerStatus = 'started' | 'stopped';
378
+ export type JobInstanceStatus = 'running' | 'errored' | 'succeeded' | 'scheduled' | 'timedout' | 'canceled';
package/dist/types.js CHANGED
@@ -37,8 +37,8 @@ const registry = new schema_1.SchemaRegistry()
37
37
  endsOn: alias('Common.Date').optional(),
38
38
  /** Max number of repeats (min 1) */
39
39
  maxOccurences: number().min(1).optional(),
40
- /** Skip this number of repeats - 1. Min value is 1. */
41
- startingFromIndex: number().min(1).optional()
40
+ /** Skip this number of repeats. Min value is 1. */
41
+ skipFirst: number().min(1).optional()
42
42
  })
43
43
  .setPropPreprocessor('endsOn', 'StringToDate')
44
44
  .addValidator((val) => {
@@ -118,7 +118,11 @@ exports.schemaRegistry = registry
118
118
  /** Job will be considered as disabled when more than that count of runs fails consequently
119
119
  * unlimited if negative
120
120
  */
121
- maxConsequentFails: number().optional()
121
+ maxConsequentFails: number().optional(),
122
+ /**
123
+ * Job will be retried right away this times. Job will be retried on next schedule run if this number is exceeded.
124
+ */
125
+ maxRetries: number().optional().min(0)
122
126
  }));
123
127
  exports.Schemas = exports.schemaRegistry;
124
128
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleverbrush/scheduler",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.6",
4
4
  "keywords": [
5
5
  "task scheduler"
6
6
  ],
@@ -21,7 +21,7 @@
21
21
  "url": "github:cleverbrush/libs"
22
22
  },
23
23
  "dependencies": {
24
- "@cleverbrush/schema": "1.0.0-beta.4"
24
+ "@cleverbrush/schema": "1.0.0-beta.5"
25
25
  },
26
26
  "types": "./dist/index.d.ts"
27
27
  }
@@ -86,7 +86,7 @@ test('day - 4', () => {
86
86
  interval: 2,
87
87
  startsOn: new Date(Date.UTC(2022, 9, 12, 21, 0, 0, 0)),
88
88
  endsOn: new Date(Date.UTC(2022, 11, 12, 0, 0, 0, 0)),
89
- startingFromIndex: 3,
89
+ skipFirst: 2,
90
90
  maxOccurences: 10
91
91
  });
92
92
 
@@ -102,8 +102,10 @@ test('day - 4', () => {
102
102
  ];
103
103
 
104
104
  for (let i = 0; i < results.length; i++) {
105
- expect(calculator.hasNext()).toEqual(true);
106
- expect(calculator.next().date.getTime()).toEqual(results[i].getTime());
105
+ const hasNext = calculator.hasNext();
106
+ expect(hasNext).toEqual(true);
107
+ const next = calculator.next();
108
+ expect(next.date.getTime()).toEqual(results[i].getTime());
107
109
  }
108
110
 
109
111
  expect(calculator.hasNext()).toEqual(false);
@@ -86,9 +86,12 @@ export class ScheduleCalculator {
86
86
  this.#hasNext = true;
87
87
  }
88
88
 
89
- let leftToSkip = this.#schedule.startingFromIndex || 1;
89
+ let leftToSkip =
90
+ typeof this.#schedule.skipFirst === 'number'
91
+ ? this.#schedule.skipFirst
92
+ : 0;
90
93
 
91
- while (leftToSkip-- > 1 && this.#hasNext) {
94
+ while (leftToSkip-- > 0 && this.#hasNext) {
92
95
  this.next();
93
96
  }
94
97
  }
package/src/index.ts CHANGED
@@ -35,6 +35,7 @@ const CHECK_INTERVAL = 1000 * 10; // every 10 seconds
35
35
  const SCHEDULE_JOB_SPAN = 1000 * 60; // 1 hour
36
36
  const DEFAULT_JOB_TIMEOUT = 1000 * 20; // 20 seconds
37
37
  const DEFAULT_MAX_CONSEQUENT_FAILS = 3;
38
+ const DEFAULT_MAX_RETRIES = 0;
38
39
 
39
40
  type JobStartItem = {
40
41
  jobId: string;
@@ -53,11 +54,16 @@ type JobErrorItem = JobStartItem & {
53
54
  error?: Error;
54
55
  };
55
56
 
57
+ type JobMessageItem = Omit<JobStartItem, 'stdout' | 'stderr'> & {
58
+ value: any;
59
+ };
60
+
56
61
  type Events = {
57
62
  'job:start': (job: JobStartItem) => any;
58
63
  'job:end': (job: JobEndItem) => any;
59
64
  'job:error': (job: JobErrorItem) => any;
60
65
  'job:timeout': (job: JobErrorItem) => any;
66
+ 'job:message': (msg: JobMessageItem) => any;
61
67
  };
62
68
 
63
69
  interface IJobScheduler {
@@ -102,7 +108,7 @@ export class JobScheduler extends EventEmitter implements IJobScheduler {
102
108
  }
103
109
 
104
110
  if (typeof job.successfullTimesRunned === 'number') {
105
- schedule.startingFromIndex = job.successfullTimesRunned + 1;
111
+ schedule.skipFirst = job.successfullTimesRunned - 1;
106
112
  }
107
113
 
108
114
  const res = new ScheduleCalculator(schedule);
@@ -152,8 +158,7 @@ export class JobScheduler extends EventEmitter implements IJobScheduler {
152
158
 
153
159
  return {
154
160
  promise,
155
- stderr: worker.stderr,
156
- stdout: worker.stdout
161
+ worker
157
162
  };
158
163
  }
159
164
 
@@ -193,45 +198,54 @@ export class JobScheduler extends EventEmitter implements IJobScheduler {
193
198
  status: 'running'
194
199
  });
195
200
 
196
- const { promise, stderr, stdout } = this.runWorkerWithTimeout(
201
+ const { promise, worker } = this.runWorkerWithTimeout(
197
202
  fileName,
198
203
  finalProps,
199
204
  job.timeout
200
205
  );
201
206
 
202
- const stdOutPass = stdout.pipe(
207
+ const stdOutPass = worker.stdout.pipe(
203
208
  new PassThrough({
204
209
  highWaterMark: MAX_BUFFER_SIZE
205
210
  })
206
211
  );
207
- const stdErrPass = stderr.pipe(
212
+ const stdErrPass = worker.stderr.pipe(
208
213
  new PassThrough({
209
214
  highWaterMark: MAX_BUFFER_SIZE
210
215
  })
211
216
  );
212
217
 
213
- const stdOutForJobStart = stdout.pipe(
218
+ const stdOutForJobStart = worker.stdout.pipe(
214
219
  new PassThrough({
215
220
  highWaterMark: MAX_BUFFER_SIZE
216
221
  })
217
222
  );
218
- const stdErrForJobStart = stderr.pipe(
223
+ const stdErrForJobStart = worker.stderr.pipe(
219
224
  new PassThrough({
220
225
  highWaterMark: MAX_BUFFER_SIZE
221
226
  })
222
227
  );
223
228
 
224
- const stdOutForJobEnd = stdout.pipe(
229
+ const stdOutForJobEnd = worker.stdout.pipe(
225
230
  new PassThrough({
226
231
  highWaterMark: MAX_BUFFER_SIZE
227
232
  })
228
233
  );
229
- const stdErrForJobEnd = stderr.pipe(
234
+ const stdErrForJobEnd = worker.stderr.pipe(
230
235
  new PassThrough({
231
236
  highWaterMark: MAX_BUFFER_SIZE
232
237
  })
233
238
  );
234
239
 
240
+ worker.on('message', (value) => {
241
+ this.emit('job:message', {
242
+ instanceId: instance.id,
243
+ jobId: job.id,
244
+ startDate,
245
+ value
246
+ });
247
+ });
248
+
235
249
  this.emit('job:start', {
236
250
  instanceId: instance.id,
237
251
  jobId: job.id,
@@ -323,8 +337,11 @@ export class JobScheduler extends EventEmitter implements IJobScheduler {
323
337
 
324
338
  await this._jobsRepository.saveJob(job);
325
339
 
326
- if (shouldRetry) {
327
- await this.startJobInstance(instance);
340
+ if (shouldRetry && instance.retryIndex < instance.maxRetries) {
341
+ await this.startJobInstance({
342
+ ...instance,
343
+ retryIndex: instance.retryIndex + 1
344
+ });
328
345
  }
329
346
  }
330
347
  }
@@ -347,7 +364,9 @@ export class JobScheduler extends EventEmitter implements IJobScheduler {
347
364
  scheduledTo: date,
348
365
  status: 'scheduled',
349
366
  timeout: job.timeout,
350
- index
367
+ index,
368
+ retryIndex: 0,
369
+ maxRetries: job.maxRetries
351
370
  });
352
371
 
353
372
  timer = setTimeout(async () => {
@@ -467,7 +486,11 @@ export class JobScheduler extends EventEmitter implements IJobScheduler {
467
486
  maxConsequentFails:
468
487
  typeof job.maxConsequentFails === 'number'
469
488
  ? job.maxConsequentFails
470
- : DEFAULT_MAX_CONSEQUENT_FAILS
489
+ : DEFAULT_MAX_CONSEQUENT_FAILS,
490
+ maxRetries:
491
+ typeof job.maxRetries === 'number'
492
+ ? job.maxRetries
493
+ : DEFAULT_MAX_RETRIES
471
494
  });
472
495
  }
473
496
 
package/src/types.ts CHANGED
@@ -40,8 +40,8 @@ const registry = new SchemaRegistry()
40
40
  endsOn: alias('Common.Date').optional(),
41
41
  /** Max number of repeats (min 1) */
42
42
  maxOccurences: number().min(1).optional(),
43
- /** Skip this number of repeats - 1. Min value is 1. */
44
- startingFromIndex: number().min(1).optional()
43
+ /** Skip this number of repeats. Min value is 1. */
44
+ skipFirst: number().min(1).optional()
45
45
  })
46
46
  .setPropPreprocessor('endsOn', 'StringToDate')
47
47
  .addValidator((val) => {
@@ -161,7 +161,11 @@ export const schemaRegistry = registry
161
161
  /** Job will be considered as disabled when more than that count of runs fails consequently
162
162
  * unlimited if negative
163
163
  */
164
- maxConsequentFails: number().optional()
164
+ maxConsequentFails: number().optional(),
165
+ /**
166
+ * Job will be retried right away this times. Job will be retried on next schedule run if this number is exceeded.
167
+ */
168
+ maxRetries: number().optional().min(0)
165
169
  })
166
170
  );
167
171
 
@@ -188,6 +192,7 @@ export type Job = {
188
192
  successfullTimesRunned?: number;
189
193
  consequentFailsCount: number;
190
194
  maxConsequentFails: number;
195
+ maxRetries: number;
191
196
  };
192
197
 
193
198
  export type JobInstance = {
@@ -202,6 +207,8 @@ export type JobInstance = {
202
207
  stdOut?: string;
203
208
  stdErr?: string;
204
209
  exitCode?: number;
210
+ retryIndex: number;
211
+ maxRetries: number;
205
212
  };
206
213
 
207
214
  export type JobSchedulerProps = {