phx-node 1.0.124 → 1.0.126
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/query/query.d.ts +1 -1
- package/dist/query/query.js +1 -0
- package/dist/query/query.js.map +1 -1
- 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/query/query.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const querySchoolYear: (isAllTerm: boolean) => string;
|
|
2
2
|
export declare const LIST_ACTIVE_SCHOOL_YEAR_QUERY = "\n query ListActiveSchoolYear {\n school_year(\n where: {\n start_at: { _lte: \"now\" }\n end_at: { _gte: \"now\" }\n deleted_at: { _is_null: true }\n }\n ) {\n id\n start_at\n end_at\n code\n name\n school_course {\n school {\n id\n programs(where: { deleted_at: { _is_null: true } }) {\n id\n code\n }\n educational_levels(where: { deleted_at: { _is_null: true } }) {\n id\n code\n }\n }\n }\n school_terms(\n where: { deleted_at: { _is_null: true } }\n order_by: { start_at: asc }\n ) {\n id\n start_at\n end_at\n coefficient\n code\n name\n }\n school_terms_aggregate(where: { deleted_at: { _is_null: true } }) {\n aggregate {\n count\n }\n }\n }\n }\n";
|
|
3
3
|
export declare const ACTIVE_SCHOOL_YEAR_AND_NEXT_SCHOOL_YEAR_QUERY = "\n query ActiveAndNextSchoolYear(\n $startAt: timestamptz!\n $endAt: timestamptz!\n $school_id: Int!\n ) {\n school_year(\n where: {\n deleted_at: { _is_null: true }\n start_at: { _lte: $startAt }\n end_at: { _gte: $endAt }\n school_course: { school_id: { _eq: $school_id } }\n }\n order_by: { id: asc }\n ) {\n code\n end_at\n id\n name\n start_at\n school_course {\n course_name\n id\n code\n }\n }\n }\n";
|
|
4
|
-
export declare const LIST_ACTIVE_SCHOOL_YEAR_AND_NEXT_SCHOOL_YEAR_QUERY = "\nquery GetActiveAndNextSchoolYear($startAt: timestamptz, $endAt: timestamptz) {\n school_year(where: {deleted_at: {_is_null: true}, start_at: {_lte: $startAt}, end_at: {_gte: $endAt}}, order_by: {id: asc}) {\n id\n start_at\n end_at\n school_course {\n school {\n id\n programs(where: {deleted_at: {_is_null: true}}) {\n id\n code\n }\n educational_levels(where: {deleted_at: {_is_null: true}}) {\n id\n code\n }\n }\n }\n school_terms(where: {deleted_at: {_is_null: true}}, order_by: {start_at: asc}) {\n id\n start_at\n end_at\n coefficient\n }\n school_terms_aggregate(where: {deleted_at: {_is_null: true}}) {\n aggregate {\n count\n }\n }\n }\n}\n";
|
|
4
|
+
export declare const LIST_ACTIVE_SCHOOL_YEAR_AND_NEXT_SCHOOL_YEAR_QUERY = "\nquery GetActiveAndNextSchoolYear($startAt: timestamptz, $endAt: timestamptz) {\n school_year(where: {deleted_at: {_is_null: true}, start_at: {_lte: $startAt}, end_at: {_gte: $endAt}}, order_by: {id: asc}) {\n id\n start_at\n end_at\n name\n school_course {\n school {\n id\n programs(where: {deleted_at: {_is_null: true}}) {\n id\n code\n }\n educational_levels(where: {deleted_at: {_is_null: true}}) {\n id\n code\n }\n }\n }\n school_terms(where: {deleted_at: {_is_null: true}}, order_by: {start_at: asc}) {\n id\n start_at\n end_at\n coefficient\n }\n school_terms_aggregate(where: {deleted_at: {_is_null: true}}) {\n aggregate {\n count\n }\n }\n }\n}\n";
|
|
5
5
|
export declare const LIST_NEXT_SCHOOL_YEAR_QUERY = "\n query ListNextSchoolYear($nextYearDate: timestamptz!) {\n school_year(\n where: {\n start_at: { _lte: $nextYearDate }\n end_at: { _gte: $nextYearDate }\n deleted_at: { _is_null: true }\n }\n ) {\n id\n start_at\n end_at\n school_course {\n school {\n id\n programs(where: { deleted_at: { _is_null: true } }) {\n id\n code\n }\n educational_levels(where: { deleted_at: { _is_null: true } }) {\n id\n code\n }\n }\n }\n school_terms(\n where: { deleted_at: { _is_null: true } }\n order_by: { start_at: asc }\n ) {\n id\n start_at\n end_at\n coefficient\n }\n school_terms_aggregate(where: { deleted_at: { _is_null: true } }) {\n aggregate {\n count\n }\n }\n }\n }\n";
|
package/dist/query/query.js
CHANGED
package/dist/query/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query/query.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;8DAgB/C,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oDACnB;;;;;;;;;;CAUL,CAAC;AA3BW,QAAA,eAAe,mBA2B1B;AAGW,QAAA,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C5C,CAAC;AAGW,QAAA,6CAA6C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B5D,CAAC;AAEW,QAAA,kDAAkD,GAAG
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query/query.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;8DAgB/C,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oDACnB;;;;;;;;;;CAUL,CAAC;AA3BW,QAAA,eAAe,mBA2B1B;AAGW,QAAA,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C5C,CAAC;AAGW,QAAA,6CAA6C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B5D,CAAC;AAEW,QAAA,kDAAkD,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjE,CAAC;AAGW,QAAA,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC1C,CAAC"}
|