phx-node 1.0.124 → 1.0.125

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.
@@ -1,9 +1,13 @@
1
1
  import { SchedulerRegistry } from "@nestjs/schedule";
2
- import { CreateCronjobSettings } from "src/lib/types/cronjob-manager";
3
2
  export declare class PHXCloneCronjob {
4
3
  private readonly schedulerRegistry;
5
4
  private readonly logger;
6
5
  constructor(schedulerRegistry: SchedulerRegistry);
7
- init(cronjobSettings: CreateCronjobSettings): Promise<void>;
6
+ private executionQueue;
7
+ init({ cronName, cronTime, task, }: {
8
+ cronName: string;
9
+ cronTime: string;
10
+ task: () => Promise<void>;
11
+ }): Promise<void>;
8
12
  private checkInSentry;
9
13
  }
@@ -28,16 +28,24 @@ let PHXCloneCronjob = PHXCloneCronjob_1 = class PHXCloneCronjob {
28
28
  constructor(schedulerRegistry) {
29
29
  this.schedulerRegistry = schedulerRegistry;
30
30
  this.logger = new common_1.Logger(PHXCloneCronjob_1.name);
31
+ this.executionQueue = Promise.resolve();
31
32
  }
32
- init(cronjobSettings) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- const { cronTime, cronName, schoolCode, hostName, taskService, } = cronjobSettings;
35
- const job = new cron_1.CronJob(cronTime, () => __awaiter(this, void 0, void 0, function* () {
36
- const monitorSlug = `${schoolCode.toLowerCase()}-${cronName}`;
37
- this.logger.log(`[${hostName}, ${monitorSlug}] cron job is running...`);
38
- yield taskService.init(hostName);
39
- }));
40
- this.schedulerRegistry.addCronJob(`${schoolCode}_${cronName}`, job);
33
+ init(_a) {
34
+ return __awaiter(this, arguments, void 0, function* ({ cronName, cronTime, task, }) {
35
+ const jobKey = cronName;
36
+ const job = new cron_1.CronJob(cronTime, () => {
37
+ this.logger.log(`[${cronName}] cron job added to queue`);
38
+ this.executionQueue = this.executionQueue
39
+ .then(() => __awaiter(this, void 0, void 0, function* () {
40
+ this.logger.log(`[${cronName}] cron job is running...`);
41
+ yield task();
42
+ this.logger.log(`[${cronName}] cron job completed`);
43
+ }))
44
+ .catch((error) => {
45
+ this.logger.error(`[${cronName}] cron job failed`, (error === null || error === void 0 ? void 0 : error.stack) || error);
46
+ });
47
+ });
48
+ this.schedulerRegistry.addCronJob(jobKey, job);
41
49
  job.start();
42
50
  });
43
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clone-cronjob.service.js","sourceRoot":"","sources":["../../../src/module/cronjob-manager/clone-cronjob.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+CAAqD;AACrD,+BAA+B;AAG/B,uEAAwE;AAEjE,IAAM,eAAe,uBAArB,MAAM,eAAe;IAE1B,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QADhD,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;IACS,CAAC;IAa/D,IAAI,CAAC,eAAsC;;YAC/C,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,WAAW,GAEZ,GAAG,eAAe,CAAC;YAEpB,MAAM,GAAG,GAAG,IAAI,cAAO,CAAC,QAAQ,EAAE,GAAS,EAAE;gBAC3C,MAAM,WAAW,GAAW,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAEtE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,WAAW,0BAA0B,CAAC,CAAC;gBACxE,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC,CAAA,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;YACpE,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;KAAA;IAEa,aAAa,CACzB,QAAgB,EAChB,WAAgB,EAChB,aAAkC,EAClC,WAAmB,EACnB,QAAgB,EAChB,MAAW;;YAEX,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,GAAS,EAAE;oBAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,0BAA0B,CAAC,CAAC;oBACtD,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC,CAAA,CAAC;gBAEF,MAAM,IAAA,qCAAoB,EACxB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,CACd,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;KAAA;CACF,CAAA;AA5DY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAGqC,4BAAiB;GAFtD,eAAe,CA4D3B"}
1
+ {"version":3,"file":"clone-cronjob.service.js","sourceRoot":"","sources":["../../../src/module/cronjob-manager/clone-cronjob.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+CAAqD;AACrD,+BAA+B;AAE/B,uEAAwE;AAEjE,IAAM,eAAe,uBAArB,MAAM,eAAe;IAE1B,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QADhD,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;QAInD,mBAAc,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAHU,CAAC;IAgB/D,IAAI;6DAAC,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,GAKL;YACC,MAAM,MAAM,GAAG,QAAQ,CAAC;YAExB,MAAM,GAAG,GAAG,IAAI,cAAO,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,2BAA2B,CAAC,CAAC;gBAEzD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;qBACtC,IAAI,CAAC,GAAS,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,0BAA0B,CAAC,CAAC;oBACxD,MAAM,IAAI,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,sBAAsB,CAAC,CAAC;gBACtD,CAAC,CAAA,CAAC;qBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,QAAQ,mBAAmB,EAC/B,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,KAAK,CACtB,CAAC;gBACJ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;KAAA;IAEa,aAAa,CACzB,QAAgB,EAChB,WAAgB,EAChB,aAAkC,EAClC,WAAmB,EACnB,QAAgB,EAChB,MAAW;;YAEX,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,GAAS,EAAE;oBAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,0BAA0B,CAAC,CAAC;oBACtD,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC,CAAA,CAAC;gBAEF,MAAM,IAAA,qCAAoB,EACxB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,CACd,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;KAAA;CACF,CAAA;AA1EY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAGqC,4BAAiB;GAFtD,eAAe,CA0E3B"}
@@ -33,38 +33,46 @@ let PHXCronjobManagerService = PHXCronjobManagerService_1 = class PHXCronjobMana
33
33
  }
34
34
  init(listService) {
35
35
  return __awaiter(this, void 0, void 0, function* () {
36
- var _a, _b;
37
- const listHostName = yield this.hostnameService.getListHostname();
38
- const listConfigCronjobByHostname = yield this.configByHostNameService.getCronConfig();
39
- const hostNameLength = listHostName.length;
40
- if (hostNameLength === 0 || !listConfigCronjobByHostname)
41
- return;
42
- for (const { school_code, hostname } of listHostName) {
43
- for (const { cronName, cronTime, taskService, monitorConfig, } of listService) {
44
- const configItem = listConfigCronjobByHostname.find((item) => (item === null || item === void 0 ? void 0 : item.school.hostname) === hostname);
45
- if (configItem) {
46
- const runType = configItem.cronjob_config_type_run.code;
47
- const listCronName = (_b = (_a = configItem.metadata) === null || _a === void 0 ? void 0 : _a.list_cron_name) !== null && _b !== void 0 ? _b : [];
48
- const isCronJobEnable = this.configByHostNameService.checkCronjobEnable({
49
- runType,
50
- cronName,
51
- listCronName,
52
- });
53
- if (isCronJobEnable) {
54
- yield this.cloneCronjob.init({
36
+ for (const { cronName, cronTime, taskService } of listService) {
37
+ yield this.cloneCronjob.init({
38
+ cronName,
39
+ cronTime,
40
+ task: () => __awaiter(this, void 0, void 0, function* () {
41
+ var _a, _b;
42
+ const [listHostName, listConfigCronjobByHostname] = yield Promise.all([
43
+ this.hostnameService.getListHostname(),
44
+ this.configByHostNameService.getCronConfig(),
45
+ ]);
46
+ if (listHostName.length === 0 ||
47
+ listConfigCronjobByHostname.length === 0) {
48
+ return;
49
+ }
50
+ for (const { school_code, hostname } of listHostName) {
51
+ const configItem = listConfigCronjobByHostname.find((item) => (item === null || item === void 0 ? void 0 : item.school.hostname) === hostname);
52
+ if (!configItem) {
53
+ this.logger.error(`Chưa cấu hình cronjob cho hostname: ${hostname}`);
54
+ continue;
55
+ }
56
+ const runType = configItem.cronjob_config_type_run.code;
57
+ const listCronName = (_b = (_a = configItem.metadata) === null || _a === void 0 ? void 0 : _a.list_cron_name) !== null && _b !== void 0 ? _b : [];
58
+ const isCronJobEnable = this.configByHostNameService.checkCronjobEnable({
59
+ runType,
55
60
  cronName,
56
- schoolCode: school_code,
57
- hostName: hostname,
58
- cronTime,
59
- taskService,
60
- monitorConfig,
61
+ listCronName,
61
62
  });
63
+ if (!isCronJobEnable)
64
+ continue;
65
+ try {
66
+ this.logger.log(`[${hostname}, ${school_code}, ${cronName}] start processing`);
67
+ yield taskService.init(hostname);
68
+ this.logger.log(`[${hostname}, ${school_code}, ${cronName}] completed`);
69
+ }
70
+ catch (error) {
71
+ this.logger.error(`[${hostname}, ${school_code}, ${cronName}] failed`, (error === null || error === void 0 ? void 0 : error.stack) || error);
72
+ }
62
73
  }
63
- }
64
- else {
65
- this.logger.error(`Chưa cấu hình cronjob cho hostname: ${hostname}`);
66
- }
67
- }
74
+ }),
75
+ });
68
76
  }
69
77
  });
70
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cronjob-manager.service.js","sourceRoot":"","sources":["../../../src/module/cronjob-manager/cronjob-manager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mEAA0D;AAM1D,mEAAkE;AAClE,6EAAmG;AAG5F,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAGnC,YACmB,YAA6B,EAC7B,eAAmC,EACnC,uBAAmD;QAFnD,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,oBAAe,GAAf,eAAe,CAAoB;QACnC,4BAAuB,GAAvB,uBAAuB,CAA4B;QALrD,WAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAMjE,CAAC;IAEE,IAAI,CAAC,WAA+B;;;YACxC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;YAElE,MAAM,2BAA2B,GAC/B,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC;YAErD,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC;YAE3C,IAAI,cAAc,KAAK,CAAC,IAAI,CAAC,2BAA2B;gBAAE,OAAO;YAGjE,KAAK,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;gBACrD,KAAK,MAAM,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,aAAa,GACd,IAAI,WAAW,EAAE,CAAC;oBACjB,MAAM,UAAU,GAAG,2BAA2B,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,QAAQ,MAAK,QAAQ,CAC7C,CAAC;oBAEF,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,OAAO,GAAa,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC;wBAClE,MAAM,YAAY,GAAG,MAAA,MAAA,UAAU,CAAC,QAAQ,0CAAE,cAAc,mCAAI,EAAE,CAAC;wBAE/D,MAAM,eAAe,GACnB,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;4BAC9C,OAAO;4BACP,QAAQ;4BACR,YAAY;yBACb,CAAC,CAAC;wBAEL,IAAI,eAAe,EAAE,CAAC;4BACpB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gCAC3B,QAAQ;gCACR,UAAU,EAAE,WAAW;gCACvB,QAAQ,EAAE,QAAQ;gCAClB,QAAQ;gCACR,WAAW;gCACX,aAAa;6BACd,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KAAA;CACF,CAAA;AA1DY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAKsB,uCAAe;QACZ,qCAAkB;QACV,uDAA0B;GAN3D,wBAAwB,CA0DpC"}
1
+ {"version":3,"file":"cronjob-manager.service.js","sourceRoot":"","sources":["../../../src/module/cronjob-manager/cronjob-manager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mEAA0D;AAM1D,mEAAkE;AAClE,6EAAmG;AAG5F,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAGnC,YACmB,YAA6B,EAC7B,eAAmC,EACnC,uBAAmD;QAFnD,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,oBAAe,GAAf,eAAe,CAAoB;QACnC,4BAAuB,GAAvB,uBAAuB,CAA4B;QALrD,WAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAMjE,CAAC;IAEE,IAAI,CAAC,WAA+B;;YACxC,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC9D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBAC3B,QAAQ;oBACR,QAAQ;oBACR,IAAI,EAAE,GAAS,EAAE;;wBACf,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CACnE;4BACE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;4BACtC,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE;yBAC7C,CACF,CAAC;wBAEF,IACE,YAAY,CAAC,MAAM,KAAK,CAAC;4BACzB,2BAA2B,CAAC,MAAM,KAAK,CAAC,EACxC,CAAC;4BACD,OAAO;wBACT,CAAC;wBAED,KAAK,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;4BACrD,MAAM,UAAU,GAAG,2BAA2B,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,QAAQ,MAAK,QAAQ,CAC7C,CAAC;4BAEF,IAAI,CAAC,UAAU,EAAE,CAAC;gCAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uCAAuC,QAAQ,EAAE,CAClD,CAAC;gCACF,SAAS;4BACX,CAAC;4BAED,MAAM,OAAO,GAAa,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC;4BAClE,MAAM,YAAY,GAAG,MAAA,MAAA,UAAU,CAAC,QAAQ,0CAAE,cAAc,mCAAI,EAAE,CAAC;4BAE/D,MAAM,eAAe,GACnB,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;gCAC9C,OAAO;gCACP,QAAQ;gCACR,YAAY;6BACb,CAAC,CAAC;4BAEL,IAAI,CAAC,eAAe;gCAAE,SAAS;4BAE/B,IAAI,CAAC;gCACH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,QAAQ,KAAK,WAAW,KAAK,QAAQ,oBAAoB,CAC9D,CAAC;gCAEF,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAEjC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,QAAQ,KAAK,WAAW,KAAK,QAAQ,aAAa,CACvD,CAAC;4BACJ,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,QAAQ,KAAK,WAAW,KAAK,QAAQ,UAAU,EACnD,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,KAAK,CACtB,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC,CAAA;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KAAA;CACF,CAAA;AA1EY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAKsB,uCAAe;QACZ,qCAAkB;QACV,uDAA0B;GAN3D,wBAAwB,CA0EpC"}