@nger/fk-upload 1.0.110 → 1.0.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/templates/check-upload.d.ts +3 -0
- package/dist/templates/check-upload.js +24 -1
- package/dist/templates/tasks/download-task.js +4 -1
- package/dist/templates/tasks/effect-task.js +9 -0
- package/dist/templates/tasks/schedule-task.js +13 -4
- package/dist/templates/tasks/upload-task.d.ts +1 -0
- package/dist/templates/tasks/upload-task.js +8 -8
- package/package.json +1 -1
@@ -84,7 +84,9 @@ let CheckUploadController = class CheckUploadController {
|
|
84
84
|
async checkWaitUploadTask() {
|
85
85
|
const download = this.db.manager.getRepository(fk_download_task_entity_1.FkDownloadTaskEntity);
|
86
86
|
const errors = await download.find({ where: { uploadUrl: (0, typeorm_2.Like)('https://site%') } });
|
87
|
-
|
87
|
+
if (errors && errors.length > 0) {
|
88
|
+
await download.update(errors.map(err => err.filename), { status: 1 });
|
89
|
+
}
|
88
90
|
const list = await download.find({ where: { status: 1, totalSize: (0, typeorm_2.LessThan)(1024 * 1024 * 1024) } });
|
89
91
|
const task = this.injector.get(task_service_1.TaskService);
|
90
92
|
await Promise.all(list.map(async (item) => {
|
@@ -111,6 +113,21 @@ let CheckUploadController = class CheckUploadController {
|
|
111
113
|
}));
|
112
114
|
return { list: finishs.map(it => it.filename) };
|
113
115
|
}
|
116
|
+
async reEffect() {
|
117
|
+
const finishs = await this.db.manager.find(fk_download_task_entity_1.FkDownloadTaskEntity, { where: { status: 3 } });
|
118
|
+
await Promise.all(finishs.map(finish => {
|
119
|
+
const item = new rabbitmq_1.TaskEntity();
|
120
|
+
item.topic = actions_1.EFFECT_ACTION;
|
121
|
+
item.data = {
|
122
|
+
filename: finish.filename,
|
123
|
+
uploadUrl: finish.uploadUrl,
|
124
|
+
topicId: finish.topicId,
|
125
|
+
path: finish.path,
|
126
|
+
};
|
127
|
+
return this.manager.send(item);
|
128
|
+
}));
|
129
|
+
return { list: finishs.map(it => it.filename) };
|
130
|
+
}
|
114
131
|
};
|
115
132
|
tslib_1.__decorate([
|
116
133
|
(0, http_1.Get)('reupload'),
|
@@ -160,6 +177,12 @@ tslib_1.__decorate([
|
|
160
177
|
tslib_1.__metadata("design:paramtypes", []),
|
161
178
|
tslib_1.__metadata("design:returntype", Promise)
|
162
179
|
], CheckUploadController.prototype, "checkFinish", null);
|
180
|
+
tslib_1.__decorate([
|
181
|
+
(0, http_1.Get)('reEffect'),
|
182
|
+
tslib_1.__metadata("design:type", Function),
|
183
|
+
tslib_1.__metadata("design:paramtypes", []),
|
184
|
+
tslib_1.__metadata("design:returntype", Promise)
|
185
|
+
], CheckUploadController.prototype, "reEffect", null);
|
163
186
|
CheckUploadController = tslib_1.__decorate([
|
164
187
|
(0, core_1.Controller)(`@nger/fk-upload`),
|
165
188
|
tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, rabbitmq_1.TaskManager, core_1.Injector])
|
@@ -69,7 +69,7 @@ class DownloadTask extends rabbitmq_1.Task {
|
|
69
69
|
const shouldSize = await fk.getSize(task.url);
|
70
70
|
const localSize = await fk.getLocalSize(task.path);
|
71
71
|
if (shouldSize != localSize) {
|
72
|
-
// download
|
72
|
+
// re download
|
73
73
|
await fail();
|
74
74
|
return next && next();
|
75
75
|
}
|
@@ -77,6 +77,9 @@ class DownloadTask extends rabbitmq_1.Task {
|
|
77
77
|
await manager.send(uploadTask);
|
78
78
|
await complete();
|
79
79
|
});
|
80
|
+
req.on('error', async () => {
|
81
|
+
await fail();
|
82
|
+
});
|
80
83
|
req.on('response', async (resp) => {
|
81
84
|
const headers = resp.headers;
|
82
85
|
total = Number(headers["content-length"]);
|
@@ -7,6 +7,7 @@ const typeorm_1 = require("@nger/typeorm");
|
|
7
7
|
const w7_1 = require("@nger/w7");
|
8
8
|
const entities_1 = require("../../entities");
|
9
9
|
const fs_extra_1 = require("fs-extra");
|
10
|
+
const task_service_1 = require("./task.service");
|
10
11
|
class EffectTask extends rabbitmq_1.Task {
|
11
12
|
constructor() {
|
12
13
|
super(actions_1.EFFECT_ACTION);
|
@@ -15,8 +16,16 @@ class EffectTask extends rabbitmq_1.Task {
|
|
15
16
|
const db = injector.get(typeorm_1.Db);
|
16
17
|
const task = injector.get(rabbitmq_1.DATA);
|
17
18
|
const complete = injector.get(rabbitmq_1.COMPLETE);
|
19
|
+
const manager = injector.get(rabbitmq_1.TaskManager);
|
20
|
+
const taskService = injector.get(task_service_1.TaskService);
|
18
21
|
console.log(`effect`, task.filename);
|
19
22
|
if (task.uploadUrl.startsWith('https://site')) {
|
23
|
+
// redownload
|
24
|
+
const item = await db.manager.findOne(entities_1.FkDownloadTaskEntity, { where: { filename: task.filename } });
|
25
|
+
if (item) {
|
26
|
+
const downloadTask = await taskService.createDownLoadTask(item.url, item.loginId, item.topicId);
|
27
|
+
await manager.send(downloadTask);
|
28
|
+
}
|
20
29
|
await complete();
|
21
30
|
return next && next();
|
22
31
|
}
|
@@ -64,13 +64,22 @@ class ScheduleTask extends rabbitmq_1.Task {
|
|
64
64
|
await manager.send(task);
|
65
65
|
}
|
66
66
|
else {
|
67
|
-
if (item.status === 0) {
|
68
|
-
|
69
|
-
else if (item.status ===
|
70
|
-
|
67
|
+
if (item.status === 0) {
|
68
|
+
}
|
69
|
+
else if (item.status === 1) {
|
70
|
+
}
|
71
|
+
else if (item.status === 2) {
|
72
|
+
}
|
73
|
+
else if (item.status === 3) {
|
74
|
+
}
|
71
75
|
}
|
72
76
|
}
|
73
77
|
});
|
78
|
+
// check status = 1
|
79
|
+
const waitUploadTask = await db.manager.find(entities_1.FkDownloadTaskEntity, { where: { status: 1 } });
|
80
|
+
// waitUploadTask.map(task => {
|
81
|
+
// taskService.createUploadTask()
|
82
|
+
// })
|
74
83
|
};
|
75
84
|
await run();
|
76
85
|
schedule.scheduleJob(task.name, task.rule, async (time) => {
|
@@ -1,7 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.UploadTask = void 0;
|
4
|
-
const redis_1 = require("@nger/redis");
|
5
4
|
const rabbitmq_1 = require("@nger/rabbitmq");
|
6
5
|
const actions_1 = require("./actions");
|
7
6
|
const fk_service_1 = require("./fk.service");
|
@@ -22,6 +21,7 @@ class UploadTask extends rabbitmq_1.Task {
|
|
22
21
|
return 0;
|
23
22
|
}
|
24
23
|
}
|
24
|
+
errorCount = 0;
|
25
25
|
async handle(injector, next) {
|
26
26
|
const task = injector.get(rabbitmq_1.DATA);
|
27
27
|
const complete = injector.get(rabbitmq_1.COMPLETE);
|
@@ -43,6 +43,8 @@ class UploadTask extends rabbitmq_1.Task {
|
|
43
43
|
}
|
44
44
|
if (!(0, fs_1.existsSync)(task.path) || !(old.fileMd5 && old.fileMd5.length > 0)) {
|
45
45
|
await db.manager.update(entities_1.FkDownloadTaskEntity, task.filename, { status: 0 });
|
46
|
+
const download = await taskService.createDownLoadTask(old.url, old.loginId, old.topicId);
|
47
|
+
await manager.send(download);
|
46
48
|
await complete();
|
47
49
|
return next && next();
|
48
50
|
}
|
@@ -59,18 +61,16 @@ class UploadTask extends rabbitmq_1.Task {
|
|
59
61
|
if (e.message === 'to big') {
|
60
62
|
return complete();
|
61
63
|
}
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
if (count > 5) {
|
66
|
-
return complete();
|
64
|
+
if (this.errorCount > 10) {
|
65
|
+
this.errorCount = 0;
|
66
|
+
return await complete();
|
67
67
|
}
|
68
|
-
|
69
|
-
resdis.set(task.filename, count);
|
68
|
+
this.errorCount += 1;
|
70
69
|
throw e;
|
71
70
|
});
|
72
71
|
}
|
73
72
|
else {
|
73
|
+
// check
|
74
74
|
await complete();
|
75
75
|
}
|
76
76
|
if (next)
|