@lenne.tech/nest-server 8.6.18 → 8.6.19
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/dist/config.env.js +4 -2
- package/dist/config.env.js.map +1 -1
- package/dist/core/common/interfaces/cron-job-config.interface.d.ts +2 -0
- package/dist/core/common/services/core-cron-jobs.service.d.ts +1 -0
- package/dist/core/common/services/core-cron-jobs.service.js +34 -9
- package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
- package/dist/server/common/services/cron-jobs.service.d.ts +1 -1
- package/dist/server/common/services/cron-jobs.service.js +4 -1
- package/dist/server/common/services/cron-jobs.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/config.env.ts +4 -2
- package/src/core/common/interfaces/cron-job-config.interface.ts +15 -2
- package/src/core/common/services/core-cron-jobs.service.ts +48 -9
- package/src/server/common/services/cron-jobs.service.ts +4 -1
package/dist/config.env.js
CHANGED
|
@@ -6,9 +6,11 @@ const config = {
|
|
|
6
6
|
local: {
|
|
7
7
|
cronJobs: {
|
|
8
8
|
sayHello: {
|
|
9
|
-
cronTime: schedule_1.CronExpression.
|
|
10
|
-
timeZone: 'Europe/Berlin',
|
|
9
|
+
cronTime: schedule_1.CronExpression.EVERY_10_SECONDS,
|
|
11
10
|
runOnInit: false,
|
|
11
|
+
runParallel: 1,
|
|
12
|
+
timeZone: 'Europe/Berlin',
|
|
13
|
+
throwException: false,
|
|
12
14
|
},
|
|
13
15
|
},
|
|
14
16
|
email: {
|
package/dist/config.env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAClD,+BAA4B;AAM5B,MAAM,MAAM,GAAsC;IAIhD,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,QAAQ,EAAE;gBACR,QAAQ,EAAE,yBAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export interface CronJobConfig {
|
|
|
6
6
|
cronTime: CronExpression | string | Date | Falsy;
|
|
7
7
|
onComplete?: CronCommand | null;
|
|
8
8
|
runOnInit?: boolean;
|
|
9
|
+
runParallel?: boolean | number;
|
|
10
|
+
throwException?: boolean;
|
|
9
11
|
timeZone?: string;
|
|
10
12
|
unrefTimeout?: boolean;
|
|
11
13
|
utcOffset?: string | number;
|
|
@@ -8,6 +8,7 @@ export declare abstract class CoreCronJobs {
|
|
|
8
8
|
[key: string]: any;
|
|
9
9
|
log: boolean;
|
|
10
10
|
};
|
|
11
|
+
runningJobs: Record<string, Date[]>;
|
|
11
12
|
protected constructor(schedulerRegistry: SchedulerRegistry, cronJobs: Record<string, CronExpression | string | Date | Falsy | CronJobConfig>, options?: {
|
|
12
13
|
log?: boolean;
|
|
13
14
|
});
|
|
@@ -6,6 +6,7 @@ class CoreCronJobs {
|
|
|
6
6
|
constructor(schedulerRegistry, cronJobs, options) {
|
|
7
7
|
this.schedulerRegistry = schedulerRegistry;
|
|
8
8
|
this.cronJobs = cronJobs;
|
|
9
|
+
this.runningJobs = {};
|
|
9
10
|
this.config = {
|
|
10
11
|
log: true,
|
|
11
12
|
...options,
|
|
@@ -20,16 +21,18 @@ class CoreCronJobs {
|
|
|
20
21
|
if (!CronExpressionOrConfig) {
|
|
21
22
|
continue;
|
|
22
23
|
}
|
|
23
|
-
let
|
|
24
|
-
if (typeof
|
|
25
|
-
|
|
26
|
-
cronTime:
|
|
24
|
+
let conf = CronExpressionOrConfig;
|
|
25
|
+
if (typeof conf === 'string' || conf instanceof Date) {
|
|
26
|
+
conf = {
|
|
27
|
+
cronTime: conf,
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
|
-
config = {
|
|
30
|
-
timeZone: 'Europe/Berlin',
|
|
30
|
+
const config = {
|
|
31
31
|
runOnInit: true,
|
|
32
|
-
|
|
32
|
+
runParallel: true,
|
|
33
|
+
throwException: true,
|
|
34
|
+
timeZone: 'Europe/Berlin',
|
|
35
|
+
...conf,
|
|
33
36
|
};
|
|
34
37
|
if (!config?.cronTime) {
|
|
35
38
|
continue;
|
|
@@ -40,8 +43,30 @@ class CoreCronJobs {
|
|
|
40
43
|
}
|
|
41
44
|
continue;
|
|
42
45
|
}
|
|
43
|
-
const job = new cron_1.CronJob(config.cronTime, () => {
|
|
44
|
-
this[name]
|
|
46
|
+
const job = new cron_1.CronJob(config.cronTime, async () => {
|
|
47
|
+
const dates = this.runningJobs[name];
|
|
48
|
+
if (dates?.length &&
|
|
49
|
+
(!config.runParallel || (typeof config.runParallel === 'number' && dates.length >= config.runParallel))) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (!this.runningJobs[name]) {
|
|
53
|
+
this.runningJobs[name] = [];
|
|
54
|
+
}
|
|
55
|
+
const date = new Date();
|
|
56
|
+
this.runningJobs[name].push(date);
|
|
57
|
+
try {
|
|
58
|
+
await this[name]();
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
this.runningJobs[name] = this.runningJobs[name].filter((item) => item !== date);
|
|
62
|
+
if (config.throwException) {
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
console.error(e);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
this.runningJobs[name] = this.runningJobs[name].filter((item) => item !== date);
|
|
45
70
|
}, null, true, config.timeZone, config.context, config.runOnInit, config.utcOffset, config.unrefTimeout);
|
|
46
71
|
this.schedulerRegistry.addCronJob(name, job);
|
|
47
72
|
if (this.config.log && this.schedulerRegistry.getCronJob(name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-cron-jobs.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/core-cron-jobs.service.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAO/B,MAAsB,YAAY;
|
|
1
|
+
{"version":3,"file":"core-cron-jobs.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/core-cron-jobs.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import { CoreCronJobs } from '../../../core/common/services/core-cron-jobs.servi
|
|
|
3
3
|
export declare class CronJobs extends CoreCronJobs {
|
|
4
4
|
protected schedulerRegistry: SchedulerRegistry;
|
|
5
5
|
constructor(schedulerRegistry: SchedulerRegistry);
|
|
6
|
-
protected sayHello(): void
|
|
6
|
+
protected sayHello(): Promise<void>;
|
|
7
7
|
}
|
|
@@ -19,8 +19,11 @@ let CronJobs = class CronJobs extends core_cron_jobs_service_1.CoreCronJobs {
|
|
|
19
19
|
super(schedulerRegistry, config_env_1.default.cronJobs, { log: true });
|
|
20
20
|
this.schedulerRegistry = schedulerRegistry;
|
|
21
21
|
}
|
|
22
|
-
sayHello() {
|
|
22
|
+
async sayHello() {
|
|
23
23
|
console.log('Hello :)');
|
|
24
|
+
await new Promise((resolve) => {
|
|
25
|
+
setTimeout(() => resolve(), 30000);
|
|
26
|
+
});
|
|
24
27
|
}
|
|
25
28
|
};
|
|
26
29
|
CronJobs = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-jobs.service.js","sourceRoot":"","sources":["../../../../src/server/common/services/cron-jobs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+CAAqD;AACrD,oDAA4C;AAC5C,iGAAoF;AAGpF,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,qCAAY;IAQxC,YAAsB,iBAAoC;QACxD,KAAK,CAAC,iBAAiB,EAAE,oBAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QADxC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAE1D,CAAC;IAMS,QAAQ;
|
|
1
|
+
{"version":3,"file":"cron-jobs.service.js","sourceRoot":"","sources":["../../../../src/server/common/services/cron-jobs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+CAAqD;AACrD,oDAA4C;AAC5C,iGAAoF;AAGpF,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,qCAAY;IAQxC,YAAsB,iBAAoC;QACxD,KAAK,CAAC,iBAAiB,EAAE,oBAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QADxC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAE1D,CAAC;IAMS,KAAK,CAAC,QAAQ;QACtB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtBY,QAAQ;IADpB,IAAA,mBAAU,GAAE;qCAS8B,4BAAiB;GAR/C,QAAQ,CAsBpB;AAtBY,4BAAQ"}
|