Browse Source

check bot status before save task data

master
filesite 8 months ago
parent
commit
00aac960e0
  1. 4
      heroUnion.mjs
  2. 10
      router_api.mjs
  3. 2
      test/heroUnion.test.mjs

4
heroUnion.mjs

@ -543,6 +543,10 @@ class HeroUnion { @@ -543,6 +543,10 @@ class HeroUnion {
return this.heros.slice(start, end);
}
getHeroByName(bot_name) {
return this.heros.find((item) => item.name == bot_name);
}
//初始化
async init() {
await this.getConfig();

10
router_api.mjs

@ -243,7 +243,16 @@ router.post('/savetask/', async (req, res) => { @@ -243,7 +243,16 @@ router.post('/savetask/', async (req, res) => {
data.message = '任务编号task_id格式错误,请使用接口/api/gettask/返回数据里的任务id属性值';
}
//检查爬虫是否存在及其状态
if (!data.message) {
let heroBot = heroUnion.getHeroByName(name);
if (!heroBot || heroBot.status == 'offline') {
data.message = `爬虫${name}不存在或已下线`;
}
}
//签名检查,如果通过则保存任务数据
if (!data.message) {
let task = heroUnion.getTaskById(task_id);
if (task) {
let paramsCheck = {
@ -267,6 +276,7 @@ router.post('/savetask/', async (req, res) => { @@ -267,6 +276,7 @@ router.post('/savetask/', async (req, res) => {
}else {
data.message = `任务${task_id}不存在`;
}
}
return res.status(200).json(data);
});

2
test/heroUnion.test.mjs

@ -199,7 +199,7 @@ test('HeroUnion task data save test', async (t) => { @@ -199,7 +199,7 @@ test('HeroUnion task data save test', async (t) => {
api = 'http://127.0.0.1:8080/api/savetask/';
params = {
name: "heroDemo",
name: "test_hero",
task_id: task.id,
task_result: task_data
};

Loading…
Cancel
Save