phx-node 1.0.123 → 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.
- package/dist/module/cronjob-manager/clone-cronjob.service.d.ts +6 -2
- package/dist/module/cronjob-manager/clone-cronjob.service.js +17 -9
- package/dist/module/cronjob-manager/clone-cronjob.service.js.map +1 -1
- package/dist/module/cronjob-manager/cronjob-manager.service.js +37 -29
- package/dist/module/cronjob-manager/cronjob-manager.service.js.map +1 -1
- package/dist/module/helpers-service/tuition-helper-service/create-content-transaction.service.js +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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(
|
|
33
|
-
return __awaiter(this,
|
|
34
|
-
const
|
|
35
|
-
const job = new cron_1.CronJob(cronTime, () =>
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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;
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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"}
|
package/dist/module/helpers-service/tuition-helper-service/create-content-transaction.service.js
CHANGED
|
@@ -18,14 +18,14 @@ let PHXTransactionContentService = PHXTransactionContentService_1 = class PHXTra
|
|
|
18
18
|
const content = [student_id, module_code, month_id];
|
|
19
19
|
if (detail_id)
|
|
20
20
|
content.push(detail_id);
|
|
21
|
-
return `Z${content.join("
|
|
21
|
+
return `Z${content.join(" ")}W`;
|
|
22
22
|
}
|
|
23
23
|
parseContent(transactionContent) {
|
|
24
24
|
var _a, _b, _c;
|
|
25
25
|
const contentReal = transactionContent.match(/Z(.*?)W/);
|
|
26
26
|
let result = {};
|
|
27
27
|
if (contentReal && contentReal[1]) {
|
|
28
|
-
const splitContent = contentReal[1].split("
|
|
28
|
+
const splitContent = contentReal[1].split(" ");
|
|
29
29
|
result = {
|
|
30
30
|
student_id: Number((_a = splitContent[tuition_1.INDEX_TRANSACTION_CONTENT.STUDENT_ID]) !== null && _a !== void 0 ? _a : 0),
|
|
31
31
|
module_code: splitContent[tuition_1.INDEX_TRANSACTION_CONTENT.MODULE_CODE],
|