cnpmcore 1.11.6 → 2.1.1

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.
Files changed (54) hide show
  1. package/History.md +18 -0
  2. package/dist/app/core/entity/Task.d.ts +5 -0
  3. package/dist/app/core/entity/Task.js +11 -1
  4. package/dist/app/core/service/TaskService.js +17 -12
  5. package/dist/app/port/schedule/ChangesStreamWorker.d.ts +6 -0
  6. package/dist/app/port/schedule/ChangesStreamWorker.js +41 -0
  7. package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.d.ts +7 -0
  8. package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +83 -0
  9. package/dist/app/port/schedule/CleanTempDir.d.ts +5 -0
  10. package/dist/app/port/schedule/CleanTempDir.js +63 -0
  11. package/dist/app/port/schedule/CreateSyncBinaryTask.d.ts +5 -0
  12. package/dist/app/port/schedule/CreateSyncBinaryTask.js +45 -0
  13. package/dist/app/port/schedule/CreateTriggerHookWorker.d.ts +7 -0
  14. package/dist/app/port/schedule/CreateTriggerHookWorker.js +66 -0
  15. package/dist/app/port/schedule/SavePackageVersionDownloadCounter.d.ts +4 -0
  16. package/dist/app/port/schedule/SavePackageVersionDownloadCounter.js +29 -0
  17. package/dist/app/port/schedule/SyncBinaryWorker.d.ts +6 -0
  18. package/dist/app/port/schedule/SyncBinaryWorker.js +44 -0
  19. package/dist/app/port/schedule/SyncPackageWorker.d.ts +6 -0
  20. package/dist/app/port/schedule/SyncPackageWorker.js +62 -0
  21. package/dist/app/port/schedule/TaskTimeoutHandler.d.ts +6 -0
  22. package/dist/app/port/schedule/TaskTimeoutHandler.js +40 -0
  23. package/dist/app/port/schedule/TriggerHookWorker.d.ts +7 -0
  24. package/dist/app/port/schedule/TriggerHookWorker.js +64 -0
  25. package/dist/app/port/schedule/UpdateTotalData.d.ts +9 -0
  26. package/dist/app/port/schedule/UpdateTotalData.js +122 -0
  27. package/dist/app/repository/TaskRepository.d.ts +2 -1
  28. package/dist/app/repository/TaskRepository.js +14 -1
  29. package/dist/app/repository/util/ModelConvertor.d.ts +1 -0
  30. package/dist/app/repository/util/ModelConvertor.js +19 -1
  31. package/dist/config/plugin.js +5 -1
  32. package/package.json +3 -7
  33. package/dist/app/schedule/ChangesStreamWorker.d.ts +0 -8
  34. package/dist/app/schedule/ChangesStreamWorker.js +0 -27
  35. package/dist/app/schedule/CheckRecentlyUpdatedPackages.d.ts +0 -8
  36. package/dist/app/schedule/CheckRecentlyUpdatedPackages.js +0 -66
  37. package/dist/app/schedule/CleanTempDir.d.ts +0 -8
  38. package/dist/app/schedule/CleanTempDir.js +0 -48
  39. package/dist/app/schedule/CreateSyncBinaryTask.d.ts +0 -8
  40. package/dist/app/schedule/CreateSyncBinaryTask.js +0 -34
  41. package/dist/app/schedule/CreateTriggerHookWorker.d.ts +0 -8
  42. package/dist/app/schedule/CreateTriggerHookWorker.js +0 -51
  43. package/dist/app/schedule/SavePackageVersionDownloadCounter.d.ts +0 -8
  44. package/dist/app/schedule/SavePackageVersionDownloadCounter.js +0 -21
  45. package/dist/app/schedule/SyncBinaryWorker.d.ts +0 -8
  46. package/dist/app/schedule/SyncBinaryWorker.js +0 -30
  47. package/dist/app/schedule/SyncPackageWorker.d.ts +0 -8
  48. package/dist/app/schedule/SyncPackageWorker.js +0 -48
  49. package/dist/app/schedule/TaskTimeoutHandler.d.ts +0 -9
  50. package/dist/app/schedule/TaskTimeoutHandler.js +0 -27
  51. package/dist/app/schedule/TriggerHookWorker.d.ts +0 -8
  52. package/dist/app/schedule/TriggerHookWorker.js +0 -49
  53. package/dist/app/schedule/UpdateTotalData.d.ts +0 -9
  54. package/dist/app/schedule/UpdateTotalData.js +0 -103
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SyncPackageWorker = void 0;
10
+ const schedule_1 = require("@eggjs/tegg/schedule");
11
+ const tegg_1 = require("@eggjs/tegg");
12
+ let executingCount = 0;
13
+ let SyncPackageWorker = class SyncPackageWorker {
14
+ async subscribe() {
15
+ if (this.config.cnpmcore.syncMode !== 'all')
16
+ return;
17
+ if (executingCount >= this.config.cnpmcore.syncPackageWorkerMaxConcurrentTasks)
18
+ return;
19
+ executingCount++;
20
+ try {
21
+ let task = await this.packageSyncerService.findExecuteTask();
22
+ while (task) {
23
+ const startTime = Date.now();
24
+ this.logger.info('[SyncPackageWorker:subscribe:executeTask:start][%s] taskId: %s, targetName: %s, attempts: %s, params: %j, updatedAt: %s, delay %sms', executingCount, task.taskId, task.targetName, task.attempts, task.data, task.updatedAt, startTime - task.updatedAt.getTime());
25
+ await this.packageSyncerService.executeTask(task);
26
+ const use = Date.now() - startTime;
27
+ this.logger.info('[SyncPackageWorker:subscribe:executeTask:success][%s] taskId: %s, targetName: %s, use %sms', executingCount, task.taskId, task.targetName, use);
28
+ if (executingCount >= this.config.cnpmcore.syncPackageWorkerMaxConcurrentTasks) {
29
+ this.logger.info('[SyncPackageWorker:subscribe:executeTask] current sync task count %s, exceed max concurrent tasks %s', executingCount, this.config.cnpmcore.syncPackageWorkerMaxConcurrentTasks);
30
+ break;
31
+ }
32
+ // try next task
33
+ task = await this.packageSyncerService.findExecuteTask();
34
+ }
35
+ }
36
+ catch (err) {
37
+ this.logger.error('[SyncPackageWorker:subscribe:executeTask:error][%s] %s', executingCount, err);
38
+ }
39
+ finally {
40
+ executingCount--;
41
+ }
42
+ }
43
+ };
44
+ __decorate([
45
+ (0, tegg_1.Inject)()
46
+ ], SyncPackageWorker.prototype, "packageSyncerService", void 0);
47
+ __decorate([
48
+ (0, tegg_1.Inject)()
49
+ ], SyncPackageWorker.prototype, "config", void 0);
50
+ __decorate([
51
+ (0, tegg_1.Inject)()
52
+ ], SyncPackageWorker.prototype, "logger", void 0);
53
+ SyncPackageWorker = __decorate([
54
+ (0, schedule_1.Schedule)({
55
+ type: schedule_1.ScheduleType.WORKER,
56
+ scheduleData: {
57
+ interval: 60000,
58
+ },
59
+ })
60
+ ], SyncPackageWorker);
61
+ exports.SyncPackageWorker = SyncPackageWorker;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY1BhY2thZ2VXb3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9zY2hlZHVsZS9TeW5jUGFja2FnZVdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxtREFBOEU7QUFDOUUsc0NBQXFDO0FBSXJDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztBQVF2QixJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVU1QixLQUFLLENBQUMsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBQ3BELElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1DQUFtQztZQUFFLE9BQU87UUFFdkYsY0FBYyxFQUFFLENBQUM7UUFDakIsSUFBSTtZQUNGLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdELE9BQU8sSUFBSSxFQUFFO2dCQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUlBQXFJLEVBQ3BKLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQ3RGLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEZBQTRGLEVBQzNHLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3JELElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxFQUFFO29CQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzR0FBc0csRUFDckgsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7b0JBQzVFLE1BQU07aUJBQ1A7Z0JBQ0QsZ0JBQWdCO2dCQUNoQixJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDMUQ7U0FDRjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xHO2dCQUFTO1lBQ1IsY0FBYyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQXRDQztJQURDLElBQUEsYUFBTSxHQUFFOytEQUNtRDtBQUc1RDtJQURDLElBQUEsYUFBTSxHQUFFO2lEQUM2QjtBQUd0QztJQURDLElBQUEsYUFBTSxHQUFFO2lEQUMwQjtBQVJ4QixpQkFBaUI7SUFON0IsSUFBQSxtQkFBUSxFQUFpQjtRQUN4QixJQUFJLEVBQUUsdUJBQVksQ0FBQyxNQUFNO1FBQ3pCLFlBQVksRUFBRTtZQUNaLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0YsQ0FBQztHQUNXLGlCQUFpQixDQXdDN0I7QUF4Q1ksOENBQWlCIn0=
@@ -0,0 +1,6 @@
1
+ export declare class TaskTimeoutHandler {
2
+ private readonly taskService;
3
+ private readonly cacheAdapter;
4
+ private readonly logger;
5
+ subscribe(): Promise<void>;
6
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TaskTimeoutHandler = void 0;
10
+ const schedule_1 = require("@eggjs/tegg/schedule");
11
+ const tegg_1 = require("@eggjs/tegg");
12
+ let TaskTimeoutHandler = class TaskTimeoutHandler {
13
+ async subscribe() {
14
+ await this.cacheAdapter.usingLock('TaskTimeoutHandler', 60, async () => {
15
+ const result = await this.taskService.retryExecuteTimeoutTasks();
16
+ this.logger.info('[TaskTimeoutHandler:subscribe] retry execute timeout tasks: %j', result);
17
+ });
18
+ }
19
+ };
20
+ __decorate([
21
+ (0, tegg_1.Inject)()
22
+ ], TaskTimeoutHandler.prototype, "taskService", void 0);
23
+ __decorate([
24
+ (0, tegg_1.Inject)()
25
+ ], TaskTimeoutHandler.prototype, "cacheAdapter", void 0);
26
+ __decorate([
27
+ (0, tegg_1.Inject)()
28
+ ], TaskTimeoutHandler.prototype, "logger", void 0);
29
+ TaskTimeoutHandler = __decorate([
30
+ (0, schedule_1.Schedule)({
31
+ type: schedule_1.ScheduleType.WORKER,
32
+ scheduleData: {
33
+ interval: 60000,
34
+ },
35
+ }, {
36
+ immediate: process.env.NODE_ENV !== 'test',
37
+ })
38
+ ], TaskTimeoutHandler);
39
+ exports.TaskTimeoutHandler = TaskTimeoutHandler;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza1RpbWVvdXRIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvVGFza1RpbWVvdXRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLG1EQUE4RTtBQUM5RSxzQ0FBcUM7QUFZckMsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFVN0IsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBZEM7SUFEQyxJQUFBLGFBQU0sR0FBRTt1REFDaUM7QUFHMUM7SUFEQyxJQUFBLGFBQU0sR0FBRTt3REFDbUM7QUFHNUM7SUFEQyxJQUFBLGFBQU0sR0FBRTtrREFDMEI7QUFSeEIsa0JBQWtCO0lBUjlCLElBQUEsbUJBQVEsRUFBaUI7UUFDeEIsSUFBSSxFQUFFLHVCQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGLEVBQUU7UUFDRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtLQUMzQyxDQUFDO0dBQ1csa0JBQWtCLENBZ0I5QjtBQWhCWSxnREFBa0IifQ==
@@ -0,0 +1,7 @@
1
+ export declare class TriggerHookWorker {
2
+ private readonly config;
3
+ private readonly logger;
4
+ private readonly hookTriggerService;
5
+ private readonly taskService;
6
+ subscribe(): Promise<void>;
7
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TriggerHookWorker = void 0;
10
+ const schedule_1 = require("@eggjs/tegg/schedule");
11
+ const tegg_1 = require("@eggjs/tegg");
12
+ const Task_1 = require("../../common/enum/Task");
13
+ let executingCount = 0;
14
+ let TriggerHookWorker = class TriggerHookWorker {
15
+ async subscribe() {
16
+ if (executingCount >= this.config.cnpmcore.triggerHookWorkerMaxConcurrentTasks)
17
+ return;
18
+ executingCount++;
19
+ try {
20
+ let task = await this.taskService.findExecuteTask(Task_1.TaskType.TriggerHook);
21
+ while (task) {
22
+ const startTime = Date.now();
23
+ this.logger.info('[TriggerHookWorker:subscribe:executeTask:start][%s] taskId: %s, targetName: %s, attempts: %s, params: %j, updatedAt: %s, delay %sms', executingCount, task.taskId, task.targetName, task.attempts, task.data, task.updatedAt, startTime - task.updatedAt.getTime());
24
+ await this.hookTriggerService.executeTask(task);
25
+ const use = Date.now() - startTime;
26
+ this.logger.info('[TriggerHookWorker:subscribe:executeTask:success][%s] taskId: %s, targetName: %s, use %sms', executingCount, task.taskId, task.targetName, use);
27
+ if (executingCount >= this.config.cnpmcore.triggerHookWorkerMaxConcurrentTasks) {
28
+ this.logger.info('[TriggerHookWorker:subscribe:executeTask] current sync task count %s, exceed max concurrent tasks %s', executingCount, this.config.cnpmcore.triggerHookWorkerMaxConcurrentTasks);
29
+ break;
30
+ }
31
+ // try next task
32
+ task = await this.taskService.findExecuteTask(Task_1.TaskType.TriggerHook);
33
+ }
34
+ }
35
+ catch (err) {
36
+ this.logger.error('[TriggerHookWorker:subscribe:executeTask:error][%s] %s', executingCount, err);
37
+ }
38
+ finally {
39
+ executingCount--;
40
+ }
41
+ }
42
+ };
43
+ __decorate([
44
+ (0, tegg_1.Inject)()
45
+ ], TriggerHookWorker.prototype, "config", void 0);
46
+ __decorate([
47
+ (0, tegg_1.Inject)()
48
+ ], TriggerHookWorker.prototype, "logger", void 0);
49
+ __decorate([
50
+ (0, tegg_1.Inject)()
51
+ ], TriggerHookWorker.prototype, "hookTriggerService", void 0);
52
+ __decorate([
53
+ (0, tegg_1.Inject)()
54
+ ], TriggerHookWorker.prototype, "taskService", void 0);
55
+ TriggerHookWorker = __decorate([
56
+ (0, schedule_1.Schedule)({
57
+ type: schedule_1.ScheduleType.ALL,
58
+ scheduleData: {
59
+ interval: 1000,
60
+ },
61
+ })
62
+ ], TriggerHookWorker);
63
+ exports.TriggerHookWorker = TriggerHookWorker;
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpZ2dlckhvb2tXb3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9zY2hlZHVsZS9UcmlnZ2VySG9va1dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxtREFBOEU7QUFDOUUsc0NBQXFDO0FBR3JDLGlEQUFrRDtBQUdsRCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFPdkIsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7SUFhNUIsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQ0FBbUM7WUFBRSxPQUFPO1FBRXZGLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLElBQUk7WUFDRixJQUFJLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGVBQVEsQ0FBQyxXQUFXLENBQW9CLENBQUM7WUFDM0YsT0FBTyxJQUFJLEVBQUU7Z0JBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxSUFBcUksRUFDcEosY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFDdEYsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0RkFBNEYsRUFDM0csY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDckQsSUFBSSxjQUFjLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUNBQW1DLEVBQUU7b0JBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNHQUFzRyxFQUNySCxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUMsQ0FBQztvQkFDNUUsTUFBTTtpQkFDUDtnQkFDRCxnQkFBZ0I7Z0JBQ2hCLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGVBQVEsQ0FBQyxXQUFXLENBQW9CLENBQUM7YUFDeEY7U0FDRjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xHO2dCQUFTO1lBQ1IsY0FBYyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQXhDQztJQURDLElBQUEsYUFBTSxHQUFFO2lEQUM2QjtBQUd0QztJQURDLElBQUEsYUFBTSxHQUFFO2lEQUMwQjtBQUduQztJQURDLElBQUEsYUFBTSxHQUFFOzZEQUMrQztBQUd4RDtJQURDLElBQUEsYUFBTSxHQUFFO3NEQUNpQztBQVgvQixpQkFBaUI7SUFON0IsSUFBQSxtQkFBUSxFQUFpQjtRQUN4QixJQUFJLEVBQUUsdUJBQVksQ0FBQyxHQUFHO1FBQ3RCLFlBQVksRUFBRTtZQUNaLFFBQVEsRUFBRSxJQUFJO1NBQ2Y7S0FDRixDQUFDO0dBQ1csaUJBQWlCLENBMEM3QjtBQTFDWSw4Q0FBaUIifQ==
@@ -0,0 +1,9 @@
1
+ export declare class UpdateTotalData {
2
+ private readonly logger;
3
+ private readonly packageRepository;
4
+ private readonly taskRepository;
5
+ private readonly changeRepository;
6
+ private readonly packageVersionDownloadRepository;
7
+ private readonly cacheService;
8
+ subscribe(): Promise<void>;
9
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateTotalData = void 0;
13
+ const schedule_1 = require("@eggjs/tegg/schedule");
14
+ const tegg_1 = require("@eggjs/tegg");
15
+ const Task_1 = require("../../common/enum/Task");
16
+ const dayjs_1 = __importDefault(require("../../common/dayjs"));
17
+ let UpdateTotalData = class UpdateTotalData {
18
+ async subscribe() {
19
+ const changesStreamTask = await this.taskRepository.findTaskByTargetName('GLOBAL_WORKER', Task_1.TaskType.ChangesStream);
20
+ const packageTotal = await this.packageRepository.queryTotal();
21
+ const download = {
22
+ today: 0,
23
+ yesterday: 0,
24
+ samedayLastweek: 0,
25
+ thisweek: 0,
26
+ thismonth: 0,
27
+ thisyear: 0,
28
+ lastweek: 0,
29
+ lastmonth: 0,
30
+ lastyear: 0,
31
+ };
32
+ const today = (0, dayjs_1.default)();
33
+ const lastYearStartDay = today.subtract(1, 'year').startOf('year');
34
+ const rows = await this.packageVersionDownloadRepository.query('total', lastYearStartDay.toDate(), today.toDate());
35
+ if (rows.length > 0) {
36
+ const todayInt = Number(today.format('YYYYMMDD'));
37
+ const yesterdayInt = Number(today.subtract(1, 'day').format('YYYYMMDD'));
38
+ const samedayLastweekInt = Number(today.subtract(1, 'week').startOf('week').format('YYYYMMDD'));
39
+ const thisWeekStartDayInt = Number(today.startOf('week').format('YYYYMMDD'));
40
+ const thisWeekEndDayInt = Number(today.endOf('week').format('YYYYMMDD'));
41
+ const thisMonthStartDayInt = Number(today.startOf('month').format('YYYYMMDD'));
42
+ const thisMonthEndDayInt = Number(today.endOf('month').format('YYYYMMDD'));
43
+ const thisYearStartDayInt = Number(today.startOf('year').format('YYYYMMDD'));
44
+ const thisYearEndDayInt = Number(today.endOf('year').format('YYYYMMDD'));
45
+ const lastWeekStartDayInt = Number(today.subtract(1, 'week').startOf('week').format('YYYYMMDD'));
46
+ const lastWeekEndDayInt = Number(today.subtract(1, 'week').endOf('week').format('YYYYMMDD'));
47
+ const lastMonthStartDayInt = Number(today.subtract(1, 'month').startOf('month').format('YYYYMMDD'));
48
+ const lastMonthEndDayInt = Number(today.subtract(1, 'month').endOf('month').format('YYYYMMDD'));
49
+ const lastYearStartDayInt = Number(today.subtract(1, 'year').startOf('year').format('YYYYMMDD'));
50
+ const lastYearEndDayInt = Number(today.subtract(1, 'year').endOf('year').format('YYYYMMDD'));
51
+ for (const row of rows) {
52
+ for (let i = 1; i <= 31; i++) {
53
+ const day = String(i).padStart(2, '0');
54
+ const field = `d${day}`;
55
+ const counter = row[field];
56
+ if (!counter)
57
+ continue;
58
+ const dayInt = row.yearMonth * 100 + i;
59
+ if (dayInt === todayInt)
60
+ download.today += counter;
61
+ if (dayInt === yesterdayInt)
62
+ download.yesterday += counter;
63
+ if (dayInt === samedayLastweekInt)
64
+ download.samedayLastweek += counter;
65
+ if (dayInt >= thisWeekStartDayInt && dayInt <= thisWeekEndDayInt)
66
+ download.thisweek += counter;
67
+ if (dayInt >= thisMonthStartDayInt && dayInt <= thisMonthEndDayInt)
68
+ download.thismonth += counter;
69
+ if (dayInt >= thisYearStartDayInt && dayInt <= thisYearEndDayInt)
70
+ download.thisyear += counter;
71
+ if (dayInt >= lastWeekStartDayInt && dayInt <= lastWeekEndDayInt)
72
+ download.lastweek += counter;
73
+ if (dayInt >= lastMonthStartDayInt && dayInt <= lastMonthEndDayInt)
74
+ download.lastmonth += counter;
75
+ if (dayInt >= lastYearStartDayInt && dayInt <= lastYearEndDayInt)
76
+ download.lastyear += counter;
77
+ }
78
+ }
79
+ }
80
+ const lastChange = await this.changeRepository.getLastChange();
81
+ const totalData = {
82
+ ...packageTotal,
83
+ download,
84
+ changesStream: changesStreamTask && changesStreamTask.data || {},
85
+ lastChangeId: lastChange && lastChange.id || 0,
86
+ cacheTime: new Date().toISOString(),
87
+ };
88
+ await this.cacheService.saveTotalData(totalData);
89
+ this.logger.info('[UpdateTotalData.subscribe] total data: %j', totalData);
90
+ }
91
+ };
92
+ __decorate([
93
+ (0, tegg_1.Inject)()
94
+ ], UpdateTotalData.prototype, "logger", void 0);
95
+ __decorate([
96
+ (0, tegg_1.Inject)()
97
+ ], UpdateTotalData.prototype, "packageRepository", void 0);
98
+ __decorate([
99
+ (0, tegg_1.Inject)()
100
+ ], UpdateTotalData.prototype, "taskRepository", void 0);
101
+ __decorate([
102
+ (0, tegg_1.Inject)()
103
+ ], UpdateTotalData.prototype, "changeRepository", void 0);
104
+ __decorate([
105
+ (0, tegg_1.Inject)()
106
+ ], UpdateTotalData.prototype, "packageVersionDownloadRepository", void 0);
107
+ __decorate([
108
+ (0, tegg_1.Inject)()
109
+ ], UpdateTotalData.prototype, "cacheService", void 0);
110
+ UpdateTotalData = __decorate([
111
+ (0, schedule_1.Schedule)({
112
+ type: schedule_1.ScheduleType.WORKER,
113
+ scheduleData: {
114
+ interval: 60000,
115
+ },
116
+ }, {
117
+ // immediate = false on unittest env
118
+ immediate: process.env.NODE_ENV !== 'test',
119
+ })
120
+ ], UpdateTotalData);
121
+ exports.UpdateTotalData = UpdateTotalData;
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlVG90YWxEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvVXBkYXRlVG90YWxEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLG1EQUE4RTtBQUM5RSxzQ0FBcUM7QUFNckMsaURBQWtEO0FBQ2xELCtEQUF1QztBQVl2QyxJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBbUIxQixLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxlQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEgsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFL0QsTUFBTSxRQUFRLEdBQUc7WUFDZixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osZUFBZSxFQUFFLENBQUM7WUFDbEIsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUNaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUNaLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBSyxHQUFFLENBQUM7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuSCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDbEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNoRyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDekUsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUMvRSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDakcsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzdGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNwRyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEcsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUU3RixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDNUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLE9BQU87d0JBQUUsU0FBUztvQkFDdkIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUN2QyxJQUFJLE1BQU0sS0FBSyxRQUFRO3dCQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDO29CQUNuRCxJQUFJLE1BQU0sS0FBSyxZQUFZO3dCQUFFLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDO29CQUMzRCxJQUFJLE1BQU0sS0FBSyxrQkFBa0I7d0JBQUUsUUFBUSxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUM7b0JBQ3ZFLElBQUksTUFBTSxJQUFJLG1CQUFtQixJQUFJLE1BQU0sSUFBSSxpQkFBaUI7d0JBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7b0JBQy9GLElBQUksTUFBTSxJQUFJLG9CQUFvQixJQUFJLE1BQU0sSUFBSSxrQkFBa0I7d0JBQUUsUUFBUSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7b0JBQ2xHLElBQUksTUFBTSxJQUFJLG1CQUFtQixJQUFJLE1BQU0sSUFBSSxpQkFBaUI7d0JBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7b0JBQy9GLElBQUksTUFBTSxJQUFJLG1CQUFtQixJQUFJLE1BQU0sSUFBSSxpQkFBaUI7d0JBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7b0JBQy9GLElBQUksTUFBTSxJQUFJLG9CQUFvQixJQUFJLE1BQU0sSUFBSSxrQkFBa0I7d0JBQUUsUUFBUSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7b0JBQ2xHLElBQUksTUFBTSxJQUFJLG1CQUFtQixJQUFJLE1BQU0sSUFBSSxpQkFBaUI7d0JBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7aUJBQ2hHO2FBQ0Y7U0FDRjtRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9ELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLEdBQUcsWUFBWTtZQUNmLFFBQVE7WUFDUixhQUFhLEVBQUUsaUJBQWlCLElBQUksaUJBQWlCLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDaEUsWUFBWSxFQUFFLFVBQVUsSUFBSSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUM7WUFDOUMsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1NBQ3BDLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRixDQUFBO0FBbkZDO0lBREMsSUFBQSxhQUFNLEdBQUU7K0NBQzBCO0FBR25DO0lBREMsSUFBQSxhQUFNLEdBQUU7MERBQzZDO0FBR3REO0lBREMsSUFBQSxhQUFNLEdBQUU7dURBQ3VDO0FBR2hEO0lBREMsSUFBQSxhQUFNLEdBQUU7eURBQzJDO0FBR3BEO0lBREMsSUFBQSxhQUFNLEdBQUU7eUVBQzJFO0FBR3BGO0lBREMsSUFBQSxhQUFNLEdBQUU7cURBQ21DO0FBakJqQyxlQUFlO0lBVDNCLElBQUEsbUJBQVEsRUFBaUI7UUFDeEIsSUFBSSxFQUFFLHVCQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGLEVBQUU7UUFDRCxvQ0FBb0M7UUFDcEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLE1BQU07S0FDM0MsQ0FBQztHQUNXLGVBQWUsQ0FxRjNCO0FBckZZLDBDQUFlIn0=
@@ -1,10 +1,11 @@
1
- import { Task as TaskEntity } from '../core/entity/Task';
1
+ import { Task as TaskEntity, TaskUpdateCondition } from '../core/entity/Task';
2
2
  import { AbstractRepository } from './AbstractRepository';
3
3
  import { TaskType, TaskState } from '../../app/common/enum/Task';
4
4
  export declare class TaskRepository extends AbstractRepository {
5
5
  private readonly Task;
6
6
  private readonly HistoryTask;
7
7
  saveTask(task: TaskEntity): Promise<void>;
8
+ idempotentSaveTask(task: TaskEntity, condition: TaskUpdateCondition): Promise<boolean>;
8
9
  saveTaskToHistory(task: TaskEntity): Promise<void>;
9
10
  findTask(taskId: string): Promise<TaskEntity<import("../core/entity/Task").TaskBaseData> | null>;
10
11
  findTaskByBizId(bizId: string): Promise<TaskEntity<import("../core/entity/Task").TaskBaseData> | null>;
@@ -5,8 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.TaskRepository = void 0;
13
+ const assert_1 = __importDefault(require("assert"));
10
14
  const tegg_1 = require("@eggjs/tegg");
11
15
  const ModelConvertor_1 = require("./util/ModelConvertor");
12
16
  const Task_1 = require("../core/entity/Task");
@@ -42,6 +46,15 @@ let TaskRepository = class TaskRepository extends AbstractRepository_1.AbstractR
42
46
  }
43
47
  }
44
48
  }
49
+ async idempotentSaveTask(task, condition) {
50
+ (0, assert_1.default)(task.id, 'task have no save');
51
+ const changes = ModelConvertor_1.ModelConvertor.convertEntityToChanges(task, this.Task);
52
+ const updateRows = await this.Task.update({
53
+ taskId: condition.taskId,
54
+ attempts: condition.attempts,
55
+ }, changes);
56
+ return updateRows === 1;
57
+ }
45
58
  async saveTaskToHistory(task) {
46
59
  const model = await this.Task.findOne({ id: task.id });
47
60
  if (!model)
@@ -113,4 +126,4 @@ TaskRepository = __decorate([
113
126
  })
114
127
  ], TaskRepository);
115
128
  exports.TaskRepository = TaskRepository;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS9UYXNrUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxzQ0FBZ0U7QUFDaEUsMERBQXVEO0FBR3ZELDhDQUF5RDtBQUN6RCw2REFBMEQ7QUFNMUQsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBZSxTQUFRLHVDQUFrQjtJQU9wRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQWdCO1FBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUNuQixNQUFNLCtCQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxJQUFJO2dCQUNGLE1BQU0sK0JBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVEO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsQ0FBQyxDQUFDLE9BQU8sR0FBRyx1Q0FBdUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFO29CQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDakUsMkJBQTJCO29CQUMzQixJQUFJLFNBQVMsRUFBRTt3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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS9UYXNrUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsc0NBQWdFO0FBQ2hFLDBEQUF1RDtBQUd2RCw4Q0FBOEU7QUFDOUUsNkRBQTBEO0FBTTFELElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWUsU0FBUSx1Q0FBa0I7SUFPcEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFnQjtRQUM3QixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDWCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU87WUFDbkIsTUFBTSwrQkFBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSTtnQkFDRixNQUFNLCtCQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1RDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLENBQUMsQ0FBQyxPQUFPLEdBQUcsdUNBQXVDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDaEUsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ2pFLDJCQUEyQjtvQkFDM0Is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
@@ -2,6 +2,7 @@ import { Bone } from 'leoric';
2
2
  import { EggProtoImplClass } from '@eggjs/tegg';
3
3
  export declare class ModelConvertor {
4
4
  static convertEntityToModel<T extends Bone>(entity: object, ModelClazz: EggProtoImplClass<T>, options?: any): Promise<T>;
5
+ static convertEntityToChanges<T extends Bone>(entity: object, ModelClazz: EggProtoImplClass<T>): {};
5
6
  static saveEntityToModel<T extends Bone>(entity: object, model: T, options?: any): Promise<boolean>;
6
7
  static convertModelToEntity<T>(bone: Bone, entityClazz: EggProtoImplClass<T>, data?: object): T;
7
8
  }
@@ -33,6 +33,24 @@ class ModelConvertor {
33
33
  entity[CREATED_AT] = model[CREATED_AT];
34
34
  return model;
35
35
  }
36
+ static convertEntityToChanges(entity, ModelClazz) {
37
+ const changes = {};
38
+ const metadata = tegg_orm_decorator_1.ModelMetadataUtil.getModelMetadata(ModelClazz);
39
+ if (!metadata) {
40
+ throw new Error(`Model ${ModelClazz.name} has no metadata`);
41
+ }
42
+ for (const attributeMeta of metadata.attributes) {
43
+ const modelPropertyName = attributeMeta.propertyName;
44
+ const entityPropertyName = ModelConvertorUtil_1.ModelConvertorUtil.getEntityPropertyName(ModelClazz, modelPropertyName);
45
+ if (entityPropertyName === CREATED_AT)
46
+ continue;
47
+ const attributeValue = lodash_1.default.get(entity, entityPropertyName);
48
+ changes[modelPropertyName] = attributeValue;
49
+ }
50
+ changes[UPDATED_AT] = new Date();
51
+ entity[UPDATED_AT] = changes[UPDATED_AT];
52
+ return changes;
53
+ }
36
54
  // TODO: options is QueryOptions, should let leoric export it to use
37
55
  // Find out which attributes changed and set `updatedAt` to now
38
56
  static async saveEntityToModel(entity, model, options) {
@@ -74,4 +92,4 @@ class ModelConvertor {
74
92
  }
75
93
  }
76
94
  exports.ModelConvertor = ModelConvertor;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxDb252ZXJ0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS91dGlsL01vZGVsQ29udmVydG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtFQUE4RDtBQUc5RCxvREFBdUI7QUFDdkIsNkRBQTBEO0FBRTFELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUMvQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRWhCLE1BQWEsY0FBYztJQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFpQixNQUFjLEVBQUUsVUFBZ0MsRUFBRSxPQUFRO1FBQzFHLE1BQU0sUUFBUSxHQUFHLHNDQUFpQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsVUFBVSxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUM3RDtRQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLE1BQU0sYUFBYSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3JELE1BQU0sa0JBQWtCLEdBQUcsdUNBQWtCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDbkcsSUFBSSxrQkFBa0IsS0FBSyxVQUFVLElBQUksa0JBQWtCLEtBQUssVUFBVSxJQUFJLGtCQUFrQixLQUFLLEVBQUU7Z0JBQUUsU0FBUztZQUNsSCxNQUFNLGNBQWMsR0FBRyxnQkFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUN6RCxVQUFVLENBQUMsaUJBQWlCLENBQUMsR0FBRyxjQUFjLENB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
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxDb252ZXJ0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS91dGlsL01vZGVsQ29udmVydG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtFQUE4RDtBQUc5RCxvREFBdUI7QUFDdkIsNkRBQTBEO0FBRTFELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUMvQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRWhCLE1BQWEsY0FBYztJQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFpQixNQUFjLEVBQUUsVUFBZ0MsRUFBRSxPQUFRO1FBQzFHLE1BQU0sUUFBUSxHQUFHLHNDQUFpQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsVUFBVSxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUM3RDtRQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLE1BQU0sYUFBYSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ3JELE1BQU0sa0JBQWtCLEdBQUcsdUNBQWtCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDbkcsSUFBSSxrQkFBa0IsS0FBSyxVQUFVLElBQUksa0JBQWtCLEtBQUssVUFBVSxJQUFJLGtCQUFrQixLQUFLLEVBQUU7Z0JBQUUsU0FBUztZQUNsSCxNQUFNLGNBQWMsR0FBRyxnQkFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUN6RCxVQUFVLENBQUMsaUJBQWlCLENBQUMsR0FBRyxjQUFjLENB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
@@ -13,6 +13,10 @@ const plugin = {
13
13
  enable: true,
14
14
  package: '@eggjs/tegg-controller-plugin',
15
15
  },
16
+ teggSchedule: {
17
+ enable: true,
18
+ package: '@eggjs/tegg-schedule-plugin',
19
+ },
16
20
  teggOrm: {
17
21
  enable: true,
18
22
  package: '@eggjs/tegg-orm-plugin',
@@ -46,4 +50,4 @@ const plugin = {
46
50
  },
47
51
  };
48
52
  exports.default = plugin;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29uZmlnL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQU0sTUFBTSxHQUFjO0lBQ3hCLElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLCtCQUErQjtLQUN6QztJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLHdCQUF3QjtLQUNsQztJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLDZCQUE2QjtLQUN2QztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLHdCQUF3QjtLQUNsQztJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxZQUFZO0tBQ3RCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsV0FBVztLQUNyQjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDO0FBRUYsa0JBQWUsTUFBTSxDQUFDIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29uZmlnL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQU0sTUFBTSxHQUFjO0lBQ3hCLElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLCtCQUErQjtLQUN6QztJQUNELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLDZCQUE2QjtLQUN2QztJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLHdCQUF3QjtLQUNsQztJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLDZCQUE2QjtLQUN2QztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLHdCQUF3QjtLQUNsQztJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxZQUFZO0tBQ3RCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsV0FBVztLQUNyQjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDO0FBRUYsa0JBQWUsTUFBTSxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnpmcore",
3
- "version": "1.11.6",
3
+ "version": "2.1.1",
4
4
  "description": "npm core",
5
5
  "files": [
6
6
  "dist/**/*"
@@ -32,11 +32,6 @@
32
32
  "./repository/*": {
33
33
  "type": "./dist/app/repository",
34
34
  "node": "./dist/app/repository/*.js"
35
- },
36
- "./schedule/package.json": "./dist/app/schedule/package.json",
37
- "./schedule/*": {
38
- "type": "./dist/app/schedule",
39
- "node": "./dist/app/schedule/*.js"
40
35
  }
41
36
  },
42
37
  "scripts": {
@@ -70,13 +65,14 @@
70
65
  "npm"
71
66
  ],
72
67
  "dependencies": {
73
- "@eggjs/tegg": "^1.3.2",
68
+ "@eggjs/tegg": "^1.4.0",
74
69
  "@eggjs/tegg-aop-plugin": "^1.3.2",
75
70
  "@eggjs/tegg-config": "^1.0.0",
76
71
  "@eggjs/tegg-controller-plugin": "^1.3.2",
77
72
  "@eggjs/tegg-eventbus-plugin": "^1.3.2",
78
73
  "@eggjs/tegg-orm-decorator": "^1.4.0",
79
74
  "@eggjs/tegg-orm-plugin": "^2.1.0",
75
+ "@eggjs/tegg-schedule-plugin": "^2.2.0",
80
76
  "@eggjs/tegg-plugin": "^1.3.2",
81
77
  "@eggjs/tsconfig": "^1.0.0",
82
78
  "@node-rs/crc32": "^1.2.2",
@@ -1,8 +0,0 @@
1
- import { Subscription } from 'egg';
2
- export default class ChangesStreamWorker extends Subscription {
3
- static get schedule(): {
4
- interval: number;
5
- type: string;
6
- };
7
- subscribe(): Promise<void>;
8
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const egg_1 = require("egg");
4
- const cnpmcoreCore = 'cnpmcoreCore';
5
- class ChangesStreamWorker extends egg_1.Subscription {
6
- static get schedule() {
7
- return {
8
- interval: 60000,
9
- type: 'worker',
10
- };
11
- }
12
- async subscribe() {
13
- const { ctx, app } = this;
14
- if (app.config.cnpmcore.syncMode !== 'all' || !app.config.cnpmcore.enableChangesStream)
15
- return;
16
- await ctx.beginModuleScope(async () => {
17
- const changesStreamService = ctx.module[cnpmcoreCore].changesStreamService;
18
- const task = await changesStreamService.findExecuteTask();
19
- if (!task)
20
- return;
21
- ctx.logger.warn('[ChangesStreamWorker:start] taskId: %s', task.taskId);
22
- await changesStreamService.executeTask(task);
23
- });
24
- }
25
- }
26
- exports.default = ChangesStreamWorker;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9zY2hlZHVsZS9DaGFuZ2VzU3RyZWFtV29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQW1DO0FBR25DLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQUVwQyxNQUFxQixtQkFBb0IsU0FBUSxrQkFBWTtJQUMzRCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPO1lBQ0wsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7WUFBRSxPQUFPO1FBRS9GLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE1BQU0sb0JBQW9CLEdBQXlCLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFDakcsTUFBTSxJQUFJLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RSxNQUFNLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBCRCxzQ0FvQkMifQ==
@@ -1,8 +0,0 @@
1
- import { Subscription } from 'egg';
2
- export default class CheckRecentlyUpdatedPackages extends Subscription {
3
- static get schedule(): {
4
- interval: number;
5
- type: string;
6
- };
7
- subscribe(): Promise<void>;
8
- }