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 {
return this.heros.slice(start, end); return this.heros.slice(start, end);
} }
getHeroByName(bot_name) {
return this.heros.find((item) => item.name == bot_name);
}
//初始化 //初始化
async init() { async init() {
await this.getConfig(); await this.getConfig();

10
router_api.mjs

@ -243,7 +243,16 @@ router.post('/savetask/', async (req, res) => {
data.message = '任务编号task_id格式错误,请使用接口/api/gettask/返回数据里的任务id属性值'; 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); let task = heroUnion.getTaskById(task_id);
if (task) { if (task) {
let paramsCheck = { let paramsCheck = {
@ -267,6 +276,7 @@ router.post('/savetask/', async (req, res) => {
}else { }else {
data.message = `任务${task_id}不存在`; data.message = `任务${task_id}不存在`;
} }
}
return res.status(200).json(data); return res.status(200).json(data);
}); });

2
test/heroUnion.test.mjs

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

Loading…
Cancel
Save