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.
- package/History.md +18 -0
- package/dist/app/core/entity/Task.d.ts +5 -0
- package/dist/app/core/entity/Task.js +11 -1
- package/dist/app/core/service/TaskService.js +17 -12
- package/dist/app/port/schedule/ChangesStreamWorker.d.ts +6 -0
- package/dist/app/port/schedule/ChangesStreamWorker.js +41 -0
- package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.d.ts +7 -0
- package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +83 -0
- package/dist/app/port/schedule/CleanTempDir.d.ts +5 -0
- package/dist/app/port/schedule/CleanTempDir.js +63 -0
- package/dist/app/port/schedule/CreateSyncBinaryTask.d.ts +5 -0
- package/dist/app/port/schedule/CreateSyncBinaryTask.js +45 -0
- package/dist/app/port/schedule/CreateTriggerHookWorker.d.ts +7 -0
- package/dist/app/port/schedule/CreateTriggerHookWorker.js +66 -0
- package/dist/app/port/schedule/SavePackageVersionDownloadCounter.d.ts +4 -0
- package/dist/app/port/schedule/SavePackageVersionDownloadCounter.js +29 -0
- package/dist/app/port/schedule/SyncBinaryWorker.d.ts +6 -0
- package/dist/app/port/schedule/SyncBinaryWorker.js +44 -0
- package/dist/app/port/schedule/SyncPackageWorker.d.ts +6 -0
- package/dist/app/port/schedule/SyncPackageWorker.js +62 -0
- package/dist/app/port/schedule/TaskTimeoutHandler.d.ts +6 -0
- package/dist/app/port/schedule/TaskTimeoutHandler.js +40 -0
- package/dist/app/port/schedule/TriggerHookWorker.d.ts +7 -0
- package/dist/app/port/schedule/TriggerHookWorker.js +64 -0
- package/dist/app/port/schedule/UpdateTotalData.d.ts +9 -0
- package/dist/app/port/schedule/UpdateTotalData.js +122 -0
- package/dist/app/repository/TaskRepository.d.ts +2 -1
- package/dist/app/repository/TaskRepository.js +14 -1
- package/dist/app/repository/util/ModelConvertor.d.ts +1 -0
- package/dist/app/repository/util/ModelConvertor.js +19 -1
- package/dist/config/plugin.js +5 -1
- package/package.json +3 -7
- package/dist/app/schedule/ChangesStreamWorker.d.ts +0 -8
- package/dist/app/schedule/ChangesStreamWorker.js +0 -27
- package/dist/app/schedule/CheckRecentlyUpdatedPackages.d.ts +0 -8
- package/dist/app/schedule/CheckRecentlyUpdatedPackages.js +0 -66
- package/dist/app/schedule/CleanTempDir.d.ts +0 -8
- package/dist/app/schedule/CleanTempDir.js +0 -48
- package/dist/app/schedule/CreateSyncBinaryTask.d.ts +0 -8
- package/dist/app/schedule/CreateSyncBinaryTask.js +0 -34
- package/dist/app/schedule/CreateTriggerHookWorker.d.ts +0 -8
- package/dist/app/schedule/CreateTriggerHookWorker.js +0 -51
- package/dist/app/schedule/SavePackageVersionDownloadCounter.d.ts +0 -8
- package/dist/app/schedule/SavePackageVersionDownloadCounter.js +0 -21
- package/dist/app/schedule/SyncBinaryWorker.d.ts +0 -8
- package/dist/app/schedule/SyncBinaryWorker.js +0 -30
- package/dist/app/schedule/SyncPackageWorker.d.ts +0 -8
- package/dist/app/schedule/SyncPackageWorker.js +0 -48
- package/dist/app/schedule/TaskTimeoutHandler.d.ts +0 -9
- package/dist/app/schedule/TaskTimeoutHandler.js +0 -27
- package/dist/app/schedule/TriggerHookWorker.d.ts +0 -8
- package/dist/app/schedule/TriggerHookWorker.js +0 -49
- package/dist/app/schedule/UpdateTotalData.d.ts +0 -9
- package/dist/app/schedule/UpdateTotalData.js +0 -103
package/History.md
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
|
|
2
|
+
2.1.1 / 2022-09-08
|
|
3
|
+
==================
|
|
4
|
+
|
|
5
|
+
**fixes**
|
|
6
|
+
* [[`8fb9dd8`](http://github.com/cnpm/cnpmcore/commit/8fb9dd8cf4800afe3f54aba9ee4c0ae05efb4f1d)] - fix: findExecuteTask only return waiting task (#312) (killa <<killa123@126.com>>)
|
|
7
|
+
|
|
8
|
+
2.1.0 / 2022-09-05
|
|
9
|
+
==================
|
|
10
|
+
|
|
11
|
+
**features**
|
|
12
|
+
* [[`c5d2b49`](http://github.com/cnpm/cnpmcore/commit/c5d2b49ab3a0ce0d67f6e7cc19e0be867c92d04c)] - feat: auto get next valid task (#311) (elrrrrrrr <<elrrrrrrr@gmail.com>>)
|
|
13
|
+
|
|
14
|
+
2.0.0 / 2022-09-05
|
|
15
|
+
==================
|
|
16
|
+
|
|
17
|
+
**others**
|
|
18
|
+
* [[`fc4baff`](http://github.com/cnpm/cnpmcore/commit/fc4baff226540e7cfee9adc069e17a59f4050a43)] - chore: refactor schedule with @Schedule (#309) (killa <<killa123@126.com>>)
|
|
19
|
+
|
|
2
20
|
1.11.6 / 2022-09-04
|
|
3
21
|
==================
|
|
4
22
|
|
|
@@ -50,6 +50,10 @@ export interface ChangesStreamTaskData extends TaskBaseData {
|
|
|
50
50
|
task_count?: number;
|
|
51
51
|
registryId?: string;
|
|
52
52
|
}
|
|
53
|
+
export interface TaskUpdateCondition {
|
|
54
|
+
taskId: string;
|
|
55
|
+
attempts: number;
|
|
56
|
+
}
|
|
53
57
|
export declare type CreateHookTask = Task<CreateHookTaskData>;
|
|
54
58
|
export declare type TriggerHookTask = Task<TriggerHookTaskData>;
|
|
55
59
|
export declare type CreateSyncPackageTask = Task<CreateSyncPackageTaskData>;
|
|
@@ -78,6 +82,7 @@ export declare class Task<T extends TaskBaseData = TaskBaseData> extends Entity
|
|
|
78
82
|
static createCreateHookTask(hookEvent: HookEvent): CreateHookTask;
|
|
79
83
|
static createTriggerHookTask(hookEvent: HookEvent, hookId: string): TriggerHookTask;
|
|
80
84
|
static createSyncBinary(targetName: string, lastData: any): Task;
|
|
85
|
+
start(): TaskUpdateCondition;
|
|
81
86
|
}
|
|
82
87
|
export declare type SyncInfo = {
|
|
83
88
|
lastSince: string;
|
|
@@ -142,6 +142,16 @@ class Task extends Entity_1.Entity {
|
|
|
142
142
|
task.logPath = `/binaries/${targetName}/syncs/${(0, dayjs_1.default)().format('YYYY/MM/DDHHmm')}-${task.taskId}.log`;
|
|
143
143
|
return task;
|
|
144
144
|
}
|
|
145
|
+
start() {
|
|
146
|
+
const condition = {
|
|
147
|
+
taskId: this.taskId,
|
|
148
|
+
attempts: this.attempts,
|
|
149
|
+
};
|
|
150
|
+
this.setExecuteWorker();
|
|
151
|
+
this.state = Task_1.TaskState.Processing;
|
|
152
|
+
this.attempts += 1;
|
|
153
|
+
return condition;
|
|
154
|
+
}
|
|
145
155
|
}
|
|
146
156
|
exports.Task = Task;
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2VudGl0eS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIscUNBQThDO0FBQzlDLG1EQUEwRDtBQUMxRCxpREFBNkQ7QUFDN0QsK0RBQXVDO0FBRzFCLFFBQUEsU0FBUyxHQUFHLFlBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUMxQixRQUFBLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBbUUvQixNQUFhLElBQTRDLFNBQVEsZUFBTTtJQWVyRSxZQUFZLElBQWlCOztRQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFBLElBQUksQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLG1DQUFJLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdB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
|
|
@@ -53,18 +53,23 @@ let TaskService = class TaskService extends AbstractService_1.AbstractService {
|
|
|
53
53
|
return await this.nfsAdapter.getDownloadUrlOrStream(task.logPath);
|
|
54
54
|
}
|
|
55
55
|
async findExecuteTask(taskType) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
56
|
+
let taskId = await this.queueAdapter.pop(taskType);
|
|
57
|
+
let task;
|
|
58
|
+
while (taskId) {
|
|
59
|
+
task = await this.taskRepository.findTask(taskId);
|
|
60
|
+
// 任务已删除或任务已执行
|
|
61
|
+
// 继续取下一个任务
|
|
62
|
+
if (task === null || (task === null || task === void 0 ? void 0 : task.state) !== Task_1.TaskState.Waiting) {
|
|
63
|
+
taskId = await this.queueAdapter.pop(taskType);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const condition = task.start();
|
|
67
|
+
const saveSucceed = await this.taskRepository.idempotentSaveTask(task, condition);
|
|
68
|
+
if (!saveSucceed) {
|
|
69
|
+
taskId = await this.queueAdapter.pop(taskType);
|
|
70
|
+
continue;
|
|
67
71
|
}
|
|
72
|
+
return task;
|
|
68
73
|
}
|
|
69
74
|
return null;
|
|
70
75
|
}
|
|
@@ -143,4 +148,4 @@ TaskService = __decorate([
|
|
|
143
148
|
})
|
|
144
149
|
], TaskService);
|
|
145
150
|
exports.TaskService = TaskService;
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL1Rhc2tTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQUVyQixpREFBNkQ7QUFDN0Qsa0VBQStEO0FBUS9ELElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVksU0FBUSxpQ0FBZTtJQVF2QyxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBa0I7UUFDaEQsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQVUsRUFBRSxvQkFBNkI7UUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlGLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxvQkFBb0IsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLGdCQUFTLENBQUMsT0FBTyxFQUFFO2dCQUNsRSxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdELElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFO29CQUM3RCxrQ0FBa0M7b0JBQ2xDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQVMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1HQUFtRyxFQUNsSCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1B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
|
|
@@ -0,0 +1,41 @@
|
|
|
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.ChangesStreamWorker = void 0;
|
|
10
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
11
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
12
|
+
let ChangesStreamWorker = class ChangesStreamWorker {
|
|
13
|
+
async subscribe() {
|
|
14
|
+
if (this.config.cnpmcore.syncMode !== 'all' || !this.config.cnpmcore.enableChangesStream)
|
|
15
|
+
return;
|
|
16
|
+
const task = await this.changesStreamService.findExecuteTask();
|
|
17
|
+
if (!task)
|
|
18
|
+
return;
|
|
19
|
+
this.logger.warn('[ChangesStreamWorker:start] taskId: %s', task.taskId);
|
|
20
|
+
await this.changesStreamService.executeTask(task);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, tegg_1.Inject)()
|
|
25
|
+
], ChangesStreamWorker.prototype, "changesStreamService", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, tegg_1.Inject)()
|
|
28
|
+
], ChangesStreamWorker.prototype, "config", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, tegg_1.Inject)()
|
|
31
|
+
], ChangesStreamWorker.prototype, "logger", void 0);
|
|
32
|
+
ChangesStreamWorker = __decorate([
|
|
33
|
+
(0, schedule_1.Schedule)({
|
|
34
|
+
type: schedule_1.ScheduleType.WORKER,
|
|
35
|
+
scheduleData: {
|
|
36
|
+
interval: 60000,
|
|
37
|
+
},
|
|
38
|
+
})
|
|
39
|
+
], ChangesStreamWorker);
|
|
40
|
+
exports.ChangesStreamWorker = ChangesStreamWorker;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoYW5nZXNTdHJlYW1Xb3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsbURBQThFO0FBQzlFLHNDQUFxQztBQVNyQyxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQVU5QixLQUFLLENBQUMsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtZQUFFLE9BQU87UUFDakcsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGLENBQUE7QUFmQztJQURDLElBQUEsYUFBTSxHQUFFO2lFQUNtRDtBQUc1RDtJQURDLElBQUEsYUFBTSxHQUFFO21EQUM2QjtBQUd0QztJQURDLElBQUEsYUFBTSxHQUFFO21EQUMwQjtBQVJ4QixtQkFBbUI7SUFOL0IsSUFBQSxtQkFBUSxFQUFpQjtRQUN4QixJQUFJLEVBQUUsdUJBQVksQ0FBQyxNQUFNO1FBQ3pCLFlBQVksRUFBRTtZQUNaLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0YsQ0FBQztHQUNXLG1CQUFtQixDQWlCL0I7QUFqQlksa0RBQW1CIn0=
|
|
@@ -0,0 +1,83 @@
|
|
|
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.CheckRecentlyUpdatedPackages = void 0;
|
|
10
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
11
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
12
|
+
// https://github.com/cnpm/cnpmcore/issues/9
|
|
13
|
+
let CheckRecentlyUpdatedPackages = class CheckRecentlyUpdatedPackages {
|
|
14
|
+
async subscribe() {
|
|
15
|
+
if (this.config.cnpmcore.syncMode !== 'all' || !this.config.cnpmcore.enableCheckRecentlyUpdated)
|
|
16
|
+
return;
|
|
17
|
+
const pageSize = 36;
|
|
18
|
+
const pageCount = this.config.env === 'unittest' ? 2 : 5;
|
|
19
|
+
for (let pageIndex = 0; pageIndex < pageCount; pageIndex++) {
|
|
20
|
+
const offset = pageSize * pageIndex;
|
|
21
|
+
const pageUrl = `https://www.npmjs.com/browse/updated?offset=${offset}`;
|
|
22
|
+
let html = '';
|
|
23
|
+
try {
|
|
24
|
+
const { status, data } = await this.httpclient.request(pageUrl, {
|
|
25
|
+
followRedirect: true,
|
|
26
|
+
timeout: 10000,
|
|
27
|
+
});
|
|
28
|
+
this.logger.info('[CheckRecentlyUpdatedPackages.subscribe][%s] request %s status: %s, data size: %s', pageIndex, pageUrl, status, data.length);
|
|
29
|
+
if (status === 200) {
|
|
30
|
+
html = data.toString();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
this.logger.info('[CheckRecentlyUpdatedPackages.subscribe:error][%s] request %s error: %s', pageIndex, pageUrl, err);
|
|
35
|
+
this.logger.error(err);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const matchs = /window\.__context__ = ([^<]+?)<\/script>/.exec(html);
|
|
39
|
+
if (!matchs)
|
|
40
|
+
continue;
|
|
41
|
+
try {
|
|
42
|
+
const data = JSON.parse(matchs[1]);
|
|
43
|
+
const packages = data.context.packages || [];
|
|
44
|
+
if (Array.isArray(packages)) {
|
|
45
|
+
this.logger.info('[CheckRecentlyUpdatedPackages.subscribe][%s] parse %d packages on %s', pageIndex, packages.length, pageUrl);
|
|
46
|
+
for (const pkg of packages) {
|
|
47
|
+
const task = await this.packageSyncerService.createTask(pkg.name, {
|
|
48
|
+
tips: `Sync cause by recently updated packages ${pageUrl}`,
|
|
49
|
+
});
|
|
50
|
+
this.logger.info('[CheckRecentlyUpdatedPackages.subscribe:createTask][%s] taskId: %s, targetName: %s', pageIndex, task.taskId, task.targetName);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
this.logger.info('[CheckRecentlyUpdatedPackages.subscribe:error][%s] parse %s context json error: %s', pageIndex, pageUrl, err);
|
|
56
|
+
this.logger.error(err);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, tegg_1.Inject)()
|
|
63
|
+
], CheckRecentlyUpdatedPackages.prototype, "packageSyncerService", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, tegg_1.Inject)()
|
|
66
|
+
], CheckRecentlyUpdatedPackages.prototype, "config", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, tegg_1.Inject)()
|
|
69
|
+
], CheckRecentlyUpdatedPackages.prototype, "logger", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, tegg_1.Inject)()
|
|
72
|
+
], CheckRecentlyUpdatedPackages.prototype, "httpclient", void 0);
|
|
73
|
+
CheckRecentlyUpdatedPackages = __decorate([
|
|
74
|
+
(0, schedule_1.Schedule)({
|
|
75
|
+
type: schedule_1.ScheduleType.WORKER,
|
|
76
|
+
scheduleData: {
|
|
77
|
+
// every 5 mins
|
|
78
|
+
interval: 60000 * 5,
|
|
79
|
+
},
|
|
80
|
+
})
|
|
81
|
+
], CheckRecentlyUpdatedPackages);
|
|
82
|
+
exports.CheckRecentlyUpdatedPackages = CheckRecentlyUpdatedPackages;
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tSZWNlbnRseVVwZGF0ZWRQYWNrYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoZWNrUmVjZW50bHlVcGRhdGVkUGFja2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsbURBQThFO0FBQzlFLHNDQUFxQztBQUdyQyw0Q0FBNEM7QUFRNUMsSUFBYSw0QkFBNEIsR0FBekMsTUFBYSw0QkFBNEI7SUFhdkMsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEI7WUFBRSxPQUFPO1FBQ3hHLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELEtBQUssSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRywrQ0FBK0MsTUFBTSxFQUFFLENBQUM7WUFDeEUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2QsSUFBSTtnQkFDRixNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUM5RCxjQUFjLEVBQUUsSUFBSTtvQkFDcEIsT0FBTyxFQUFFLEtBQUs7aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1GQUFtRixFQUNsRyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDeEI7YUFDRjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlFQUF5RSxFQUN4RixTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkIsU0FBUzthQUNWO1lBRUQsTUFBTSxNQUFNLEdBQUcsMENBQTBDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNO2dCQUFFLFNBQVM7WUFFdEIsSUFBSTtnQkFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0VBQXNFLEVBQ3JGLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUN2QyxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRTt3QkFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7NEJBQ2hFLElBQUksRUFBRSwyQ0FBMkMsT0FBTyxFQUFFO3lCQUMzRCxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0ZBQW9GLEVBQ25HLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDNUM7aUJBQ0Y7YUFDRjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9GQUFvRixFQUNuRyxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QjtTQUNGO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUE1REM7SUFEQyxJQUFBLGFBQU0sR0FBRTswRUFDbUQ7QUFHNUQ7SUFEQyxJQUFBLGFBQU0sR0FBRTs0REFDNkI7QUFHdEM7SUFEQyxJQUFBLGFBQU0sR0FBRTs0REFDMEI7QUFHbkM7SUFEQyxJQUFBLGFBQU0sR0FBRTtnRUFDa0M7QUFYaEMsNEJBQTRCO0lBUHhDLElBQUEsbUJBQVEsRUFBaUI7UUFDeEIsSUFBSSxFQUFFLHVCQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixlQUFlO1lBQ2YsUUFBUSxFQUFFLEtBQUssR0FBRyxDQUFDO1NBQ3BCO0tBQ0YsQ0FBQztHQUNXLDRCQUE0QixDQThEeEM7QUE5RFksb0VBQTRCIn0=
|
|
@@ -0,0 +1,63 @@
|
|
|
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.CleanTempDir = void 0;
|
|
13
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
14
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
15
|
+
const promises_1 = require("fs/promises");
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const dayjs_1 = __importDefault(require("../../common/dayjs"));
|
|
18
|
+
let CleanTempDir = class CleanTempDir {
|
|
19
|
+
async subscribe() {
|
|
20
|
+
const downloadDir = path_1.default.join(this.config.dataDir, 'downloads');
|
|
21
|
+
const oldDirs = [
|
|
22
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(1, 'day').format('YYYY/MM/DD')),
|
|
23
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(2, 'day').format('YYYY/MM/DD')),
|
|
24
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(3, 'day').format('YYYY/MM/DD')),
|
|
25
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(4, 'day').format('YYYY/MM/DD')),
|
|
26
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(1, 'month').format('YYYY/MM')),
|
|
27
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(2, 'month').format('YYYY/MM')),
|
|
28
|
+
path_1.default.join(downloadDir, (0, dayjs_1.default)().subtract(1, 'year').format('YYYY')),
|
|
29
|
+
];
|
|
30
|
+
for (const dir of oldDirs) {
|
|
31
|
+
let exists = false;
|
|
32
|
+
try {
|
|
33
|
+
await (0, promises_1.access)(dir);
|
|
34
|
+
exists = true;
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
// console.log(err);
|
|
38
|
+
exists = false;
|
|
39
|
+
}
|
|
40
|
+
this.logger.info('[CleanTempDir.subscribe] dir "%s" exists: %s', dir, exists);
|
|
41
|
+
if (exists) {
|
|
42
|
+
await (0, promises_1.rm)(dir, { recursive: true, force: true });
|
|
43
|
+
this.logger.info('[CleanTempDir.subscribe] remove dir "%s"', dir);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, tegg_1.Inject)()
|
|
50
|
+
], CleanTempDir.prototype, "config", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, tegg_1.Inject)()
|
|
53
|
+
], CleanTempDir.prototype, "logger", void 0);
|
|
54
|
+
CleanTempDir = __decorate([
|
|
55
|
+
(0, schedule_1.Schedule)({
|
|
56
|
+
type: schedule_1.ScheduleType.WORKER,
|
|
57
|
+
scheduleData: {
|
|
58
|
+
cron: '0 2 * * *', // run every day at 02:00
|
|
59
|
+
},
|
|
60
|
+
})
|
|
61
|
+
], CleanTempDir);
|
|
62
|
+
exports.CleanTempDir = CleanTempDir;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xlYW5UZW1wRGlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvQ2xlYW5UZW1wRGlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLG1EQUEwRTtBQUMxRSxzQ0FBcUM7QUFDckMsMENBQXlDO0FBQ3pDLGdEQUF3QjtBQUN4QiwrREFBdUM7QUFRdkMsSUFBYSxZQUFZLEdBQXpCLE1BQWEsWUFBWTtJQU92QixLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sV0FBVyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUc7WUFDZCxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFBLGVBQUssR0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZFLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUEsZUFBSyxHQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkUsY0FBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBQSxlQUFLLEdBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2RSxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFBLGVBQUssR0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZFLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUEsZUFBSyxHQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEUsY0FBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBQSxlQUFLLEdBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RSxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFBLGVBQUssR0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25FLENBQUM7UUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSTtnQkFDRixNQUFNLElBQUEsaUJBQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osb0JBQW9CO2dCQUNwQixNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ2hCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlFLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sSUFBQSxhQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMENBQTBDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDbkU7U0FDRjtJQUNILENBQUM7Q0FDRixDQUFBO0FBaENDO0lBREMsSUFBQSxhQUFNLEdBQUU7NENBQzZCO0FBR3RDO0lBREMsSUFBQSxhQUFNLEdBQUU7NENBQzBCO0FBTHhCLFlBQVk7SUFOeEIsSUFBQSxtQkFBUSxFQUFhO1FBQ3BCLElBQUksRUFBRSx1QkFBWSxDQUFDLE1BQU07UUFDekIsWUFBWSxFQUFFO1lBQ1osSUFBSSxFQUFFLFdBQVcsRUFBRSx5QkFBeUI7U0FDN0M7S0FDRixDQUFDO0dBQ1csWUFBWSxDQWtDeEI7QUFsQ1ksb0NBQVkifQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
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.CreateSyncBinaryTask = void 0;
|
|
13
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
14
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
15
|
+
const binaries_1 = __importDefault(require("../../../config/binaries"));
|
|
16
|
+
let CreateSyncBinaryTask = class CreateSyncBinaryTask {
|
|
17
|
+
async subscribe() {
|
|
18
|
+
if (!this.config.cnpmcore.enableSyncBinary)
|
|
19
|
+
return;
|
|
20
|
+
for (const binary of Object.values(binaries_1.default)) {
|
|
21
|
+
if (this.config.env === 'unittest' && binary.category !== 'node')
|
|
22
|
+
continue;
|
|
23
|
+
if (binary.disable)
|
|
24
|
+
continue;
|
|
25
|
+
await this.binarySyncerService.createTask(binary.category);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, tegg_1.Inject)()
|
|
31
|
+
], CreateSyncBinaryTask.prototype, "config", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, tegg_1.Inject)()
|
|
34
|
+
], CreateSyncBinaryTask.prototype, "binarySyncerService", void 0);
|
|
35
|
+
CreateSyncBinaryTask = __decorate([
|
|
36
|
+
(0, schedule_1.Schedule)({
|
|
37
|
+
type: schedule_1.ScheduleType.WORKER,
|
|
38
|
+
scheduleData: {
|
|
39
|
+
// every 5 mins
|
|
40
|
+
interval: 60000 * 5,
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
], CreateSyncBinaryTask);
|
|
44
|
+
exports.CreateSyncBinaryTask = CreateSyncBinaryTask;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlU3luY0JpbmFyeVRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9zY2hlZHVsZS9DcmVhdGVTeW5jQmluYXJ5VGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSxtREFBOEU7QUFDOUUsc0NBQXFDO0FBRXJDLHdFQUFnRDtBQVNoRCxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQU8vQixLQUFLLENBQUMsU0FBUztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRW5ELEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBUSxDQUFDLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNO2dCQUFFLFNBQVM7WUFDM0UsSUFBSSxNQUFNLENBQUMsT0FBTztnQkFBRSxTQUFTO1lBQzdCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQWRDO0lBREMsSUFBQSxhQUFNLEdBQUU7b0RBQzZCO0FBR3RDO0lBREMsSUFBQSxhQUFNLEdBQUU7aUVBQ2lEO0FBTC9DLG9CQUFvQjtJQVBoQyxJQUFBLG1CQUFRLEVBQWlCO1FBQ3hCLElBQUksRUFBRSx1QkFBWSxDQUFDLE1BQU07UUFDekIsWUFBWSxFQUFFO1lBQ1osZUFBZTtZQUNmLFFBQVEsRUFBRSxLQUFLLEdBQUcsQ0FBQztTQUNwQjtLQUNGLENBQUM7R0FDVyxvQkFBb0IsQ0FnQmhDO0FBaEJZLG9EQUFvQiJ9
|
|
@@ -0,0 +1,66 @@
|
|
|
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.CreateTriggerHookWorker = 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 CreateTriggerHookWorker = class CreateTriggerHookWorker {
|
|
15
|
+
async subscribe() {
|
|
16
|
+
if (!this.config.cnpmcore.hookEnable)
|
|
17
|
+
return;
|
|
18
|
+
if (executingCount >= this.config.cnpmcore.createTriggerHookWorkerMaxConcurrentTasks)
|
|
19
|
+
return;
|
|
20
|
+
executingCount++;
|
|
21
|
+
try {
|
|
22
|
+
let task = await this.taskService.findExecuteTask(Task_1.TaskType.CreateHook);
|
|
23
|
+
while (task) {
|
|
24
|
+
const startTime = Date.now();
|
|
25
|
+
this.logger.info('[CreateTriggerHookWorker: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());
|
|
26
|
+
await this.createHookTriggerService.executeTask(task);
|
|
27
|
+
const use = Date.now() - startTime;
|
|
28
|
+
this.logger.info('[CreateTriggerHookWorker:subscribe:executeTask:success][%s] taskId: %s, targetName: %s, use %sms', executingCount, task.taskId, task.targetName, use);
|
|
29
|
+
if (executingCount >= this.config.cnpmcore.createTriggerHookWorkerMaxConcurrentTasks) {
|
|
30
|
+
this.logger.info('[CreateTriggerHookWorker:subscribe:executeTask] current sync task count %s, exceed max concurrent tasks %s', executingCount, this.config.cnpmcore.createTriggerHookWorkerMaxConcurrentTasks);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
// try next task
|
|
34
|
+
task = await this.taskService.findExecuteTask(Task_1.TaskType.CreateHook);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
this.logger.error('[TriggerHookWorker:subscribe:executeTask:error][%s] %s', executingCount, err);
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
executingCount--;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, tegg_1.Inject)()
|
|
47
|
+
], CreateTriggerHookWorker.prototype, "config", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, tegg_1.Inject)()
|
|
50
|
+
], CreateTriggerHookWorker.prototype, "logger", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, tegg_1.Inject)()
|
|
53
|
+
], CreateTriggerHookWorker.prototype, "createHookTriggerService", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, tegg_1.Inject)()
|
|
56
|
+
], CreateTriggerHookWorker.prototype, "taskService", void 0);
|
|
57
|
+
CreateTriggerHookWorker = __decorate([
|
|
58
|
+
(0, schedule_1.Schedule)({
|
|
59
|
+
type: schedule_1.ScheduleType.ALL,
|
|
60
|
+
scheduleData: {
|
|
61
|
+
interval: 1000,
|
|
62
|
+
},
|
|
63
|
+
})
|
|
64
|
+
], CreateTriggerHookWorker);
|
|
65
|
+
exports.CreateTriggerHookWorker = CreateTriggerHookWorker;
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlVHJpZ2dlckhvb2tXb3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9zY2hlZHVsZS9DcmVhdGVUcmlnZ2VySG9va1dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxtREFBOEU7QUFDOUUsc0NBQXFDO0FBRXJDLGlEQUFrRDtBQUlsRCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFRdkIsSUFBYSx1QkFBdUIsR0FBcEMsTUFBYSx1QkFBdUI7SUFhbEMsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0MsSUFBSSxjQUFjLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMseUNBQXlDO1lBQUUsT0FBTztRQUU3RixjQUFjLEVBQUUsQ0FBQztRQUNqQixJQUFJO1lBQ0YsSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFRLENBQUMsVUFBVSxDQUFtQixDQUFDO1lBQ3pGLE9BQU8sSUFBSSxFQUFFO2dCQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMklBQTJJLEVBQzFKLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQ3RGLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0dBQWtHLEVBQ2pILGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3JELElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHlDQUF5QyxFQUFFO29CQUNwRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0R0FBNEcsRUFDM0gsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7b0JBQ2xGLE1BQU07aUJBQ1A7Z0JBQ0QsZ0JBQWdCO2dCQUNoQixJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFRLENBQUMsVUFBVSxDQUFtQixDQUFDO2FBQ3RGO1NBQ0Y7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdEQUF3RCxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRztnQkFBUztZQUNSLGNBQWMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUF6Q0M7SUFEQyxJQUFBLGFBQU0sR0FBRTt1REFDNkI7QUFHdEM7SUFEQyxJQUFBLGFBQU0sR0FBRTt1REFDMEI7QUFHbkM7SUFEQyxJQUFBLGFBQU0sR0FBRTt5RUFDMkQ7QUFHcEU7SUFEQyxJQUFBLGFBQU0sR0FBRTs0REFDaUM7QUFYL0IsdUJBQXVCO0lBTm5DLElBQUEsbUJBQVEsRUFBaUI7UUFDeEIsSUFBSSxFQUFFLHVCQUFZLENBQUMsR0FBRztRQUN0QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsSUFBSTtTQUNmO0tBQ0YsQ0FBQztHQUNXLHVCQUF1QixDQTJDbkM7QUEzQ1ksMERBQXVCIn0=
|
|
@@ -0,0 +1,29 @@
|
|
|
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.SavePackageVersionDownloadCounter = void 0;
|
|
10
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
11
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
12
|
+
let SavePackageVersionDownloadCounter = class SavePackageVersionDownloadCounter {
|
|
13
|
+
async subscribe() {
|
|
14
|
+
await this.packageManagerService.savePackageVersionCounters();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, tegg_1.Inject)()
|
|
19
|
+
], SavePackageVersionDownloadCounter.prototype, "packageManagerService", void 0);
|
|
20
|
+
SavePackageVersionDownloadCounter = __decorate([
|
|
21
|
+
(0, schedule_1.Schedule)({
|
|
22
|
+
type: schedule_1.ScheduleType.WORKER,
|
|
23
|
+
scheduleData: {
|
|
24
|
+
interval: 60000,
|
|
25
|
+
},
|
|
26
|
+
})
|
|
27
|
+
], SavePackageVersionDownloadCounter);
|
|
28
|
+
exports.SavePackageVersionDownloadCounter = SavePackageVersionDownloadCounter;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F2ZVBhY2thZ2VWZXJzaW9uRG93bmxvYWRDb3VudGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvU2F2ZVBhY2thZ2VWZXJzaW9uRG93bmxvYWRDb3VudGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLG1EQUE4RTtBQUM5RSxzQ0FBcUM7QUFTckMsSUFBYSxpQ0FBaUMsR0FBOUMsTUFBYSxpQ0FBaUM7SUFJNUMsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ2hFLENBQUM7Q0FDRixDQUFBO0FBTEM7SUFEQyxJQUFBLGFBQU0sR0FBRTtnRkFDcUQ7QUFGbkQsaUNBQWlDO0lBTjdDLElBQUEsbUJBQVEsRUFBaUI7UUFDeEIsSUFBSSxFQUFFLHVCQUFZLENBQUMsTUFBTTtRQUN6QixZQUFZLEVBQUU7WUFDWixRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGLENBQUM7R0FDVyxpQ0FBaUMsQ0FPN0M7QUFQWSw4RUFBaUMifQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
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.SyncBinaryWorker = void 0;
|
|
10
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
11
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
12
|
+
let SyncBinaryWorker = class SyncBinaryWorker {
|
|
13
|
+
async subscribe() {
|
|
14
|
+
if (!this.config.cnpmcore.enableSyncBinary)
|
|
15
|
+
return;
|
|
16
|
+
const task = await this.binarySyncerService.findExecuteTask();
|
|
17
|
+
if (!task)
|
|
18
|
+
return;
|
|
19
|
+
const startTime = Date.now();
|
|
20
|
+
this.logger.info('[SyncBinaryWorker:executeTask:start] taskId: %s, targetName: %s, attempts: %s, params: %j, updatedAt: %s, delay %sms', task.taskId, task.targetName, task.attempts, task.data, task.updatedAt, startTime - task.updatedAt.getTime());
|
|
21
|
+
await this.binarySyncerService.executeTask(task);
|
|
22
|
+
const use = Date.now() - startTime;
|
|
23
|
+
this.logger.info('[SyncBinaryWorker:executeTask:success] taskId: %s, targetName: %s, use %sms', task.taskId, task.targetName, use);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, tegg_1.Inject)()
|
|
28
|
+
], SyncBinaryWorker.prototype, "binarySyncerService", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, tegg_1.Inject)()
|
|
31
|
+
], SyncBinaryWorker.prototype, "config", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, tegg_1.Inject)()
|
|
34
|
+
], SyncBinaryWorker.prototype, "logger", void 0);
|
|
35
|
+
SyncBinaryWorker = __decorate([
|
|
36
|
+
(0, schedule_1.Schedule)({
|
|
37
|
+
type: schedule_1.ScheduleType.ALL,
|
|
38
|
+
scheduleData: {
|
|
39
|
+
interval: 10000,
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
], SyncBinaryWorker);
|
|
43
|
+
exports.SyncBinaryWorker = SyncBinaryWorker;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY0JpbmFyeVdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL1N5bmNCaW5hcnlXb3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsbURBQThFO0FBQzlFLHNDQUFxQztBQVNyQyxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQVUzQixLQUFLLENBQUMsU0FBUztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRW5ELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUVsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0hBQXNILEVBQ3JJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFDdEUsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw2RUFBNkUsRUFDNUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRixDQUFBO0FBdkJDO0lBREMsSUFBQSxhQUFNLEdBQUU7NkRBQ2lEO0FBRzFEO0lBREMsSUFBQSxhQUFNLEdBQUU7Z0RBQzZCO0FBR3RDO0lBREMsSUFBQSxhQUFNLEdBQUU7Z0RBQzBCO0FBUnhCLGdCQUFnQjtJQU41QixJQUFBLG1CQUFRLEVBQWlCO1FBQ3hCLElBQUksRUFBRSx1QkFBWSxDQUFDLEdBQUc7UUFDdEIsWUFBWSxFQUFFO1lBQ1osUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRixDQUFDO0dBQ1csZ0JBQWdCLENBeUI1QjtBQXpCWSw0Q0FBZ0IifQ==
|