cnpmcore
Version:
160 lines • 12.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Task = exports.PID = exports.HOST_NAME = void 0;
const os_1 = __importDefault(require("os"));
const path_1 = __importDefault(require("path"));
const Entity_1 = require("./Entity");
const EntityUtil_1 = require("../util/EntityUtil");
const Task_1 = require("../../common/enum/Task");
const dayjs_1 = __importDefault(require("../../common/dayjs"));
exports.HOST_NAME = os_1.default.hostname();
exports.PID = process.pid;
class Task extends Entity_1.Entity {
constructor(data) {
super(data);
this.taskId = data.taskId;
this.type = data.type;
this.state = data.state;
this.targetName = data.targetName;
this.authorId = data.authorId;
this.authorIp = data.authorIp;
this.data = data.data;
this.logPath = data.logPath ?? '';
this.logStorePosition = data.logStorePosition ?? '';
this.attempts = data.attempts ?? 0;
this.error = data.error ?? '';
this.bizId = data.bizId;
}
resetLogPath() {
this.logPath = `${path_1.default.dirname(this.logPath)}/${(0, dayjs_1.default)().format('DDHHmm')}-${this.taskId}-${this.attempts}.log`;
this.logStorePosition = '';
}
setExecuteWorker() {
this.data.taskWorker = `${exports.HOST_NAME}:${exports.PID}`;
}
static create(data) {
const newData = EntityUtil_1.EntityUtil.defaultData(data, 'taskId');
return new Task(newData);
}
static createSyncPackage(fullname, options) {
const data = {
type: Task_1.TaskType.SyncPackage,
state: Task_1.TaskState.Waiting,
targetName: fullname,
authorId: options?.authorId ?? '',
authorIp: options?.authorIp ?? '',
data: {
// task execute worker
taskWorker: '',
tips: options?.tips,
registryId: options?.registryId ?? '',
skipDependencies: options?.skipDependencies,
syncDownloadData: options?.syncDownloadData,
forceSyncHistory: options?.forceSyncHistory,
specificVersions: options?.specificVersions,
},
};
const task = this.create(data);
task.logPath = `/packages/${fullname}/syncs/${(0, dayjs_1.default)().format('YYYY/MM/DDHHmm')}-${task.taskId}.log`;
return task;
}
static createChangesStream(targetName, registryId = '', since = '') {
const data = {
type: Task_1.TaskType.ChangesStream,
state: Task_1.TaskState.Waiting,
targetName,
authorId: `pid_${exports.PID}`,
authorIp: exports.HOST_NAME,
data: {
// task execute worker
taskWorker: '',
registryId,
since,
},
};
return this.create(data);
}
updateSyncData({ lastSince, taskCount, lastPackage }) {
const syncData = this.data;
// 更新任务记录信息
syncData.since = lastSince;
syncData.task_count = (syncData.task_count || 0) + taskCount;
if (taskCount > 0) {
syncData.last_package = lastPackage;
syncData.last_package_created = new Date();
}
}
static createCreateHookTask(hookEvent) {
const data = {
type: Task_1.TaskType.CreateHook,
state: Task_1.TaskState.Waiting,
targetName: hookEvent.fullname,
authorId: `pid_${process.pid}`,
authorIp: os_1.default.hostname(),
bizId: `CreateHook:${hookEvent.changeId}`,
data: {
// task execute worker
taskWorker: '',
hookEvent,
},
};
const task = this.create(data);
task.logPath = `/packages/${hookEvent.fullname}/hooks/${(0, dayjs_1.default)().format('YYYY/MM/DDHHmm')}-${task.taskId}.log`;
return task;
}
static createTriggerHookTask(hookEvent, hookId) {
const data = {
type: Task_1.TaskType.TriggerHook,
state: Task_1.TaskState.Waiting,
targetName: hookEvent.fullname,
authorId: `pid_${process.pid}`,
bizId: `TriggerHook:${hookEvent.changeId}:${hookId}`,
authorIp: os_1.default.hostname(),
data: {
// task execute worker
taskWorker: '',
hookEvent,
hookId,
},
};
const task = this.create(data);
task.logPath = `/packages/${hookEvent.fullname}/hooks/${(0, dayjs_1.default)().format('YYYY/MM/DDHHmm')}-${task.taskId}.log`;
return task;
}
static createSyncBinary(targetName, lastData) {
const data = {
type: Task_1.TaskType.SyncBinary,
state: Task_1.TaskState.Waiting,
targetName,
authorId: `pid_${exports.PID}`,
authorIp: exports.HOST_NAME,
bizId: `SyncBinary:${targetName}`,
data: {
// task execute worker
taskWorker: '',
...lastData,
},
};
const task = this.create(data);
task.logPath = `/binaries/${targetName}/syncs/${(0, dayjs_1.default)().format('YYYY/MM/DDHHmm')}-${task.taskId}.log`;
return task;
}
static needMergeWhenWaiting(type) {
return [Task_1.TaskType.SyncBinary, Task_1.TaskType.SyncPackage].includes(type);
}
start() {
const condition = {
taskId: this.taskId,
attempts: this.attempts,
};
this.setExecuteWorker();
this.state = Task_1.TaskState.Processing;
this.attempts += 1;
return condition;
}
}
exports.Task = Task;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL2VudGl0eS9UYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIscUNBQThDO0FBQzlDLG1EQUEwRDtBQUMxRCxpREFBNkQ7QUFDN0QsK0RBQXVDO0FBRzFCLFFBQUEsU0FBUyxHQUFHLFlBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUMxQixRQUFBLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBcUUvQixNQUFhLElBQTRDLFNBQVEsZUFBTTtJQWVyRSxZQUFZLElBQWlCO1FBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJ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