diff options
Diffstat (limited to 'server/apps/agentcomm.py')
| -rw-r--r-- | server/apps/agentcomm.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/server/apps/agentcomm.py b/server/apps/agentcomm.py index b5c55ad..e5adbca 100644 --- a/server/apps/agentcomm.py +++ b/server/apps/agentcomm.py @@ -118,14 +118,26 @@ def deliver_task(agent_id, policy, policy_param): """ % (MYSQL_TAB_AGENT, agent_id) da.cursor.execute(sql) data = da.cursor.fetchall() - ip, port = data[0]['IPADDR'], data[0]['PORT'] + + # 解析代理的ipv4地址和通信端口 + # 如果代理有多个地址,则会以"|"分隔,详见register_agent函数 + # 第一个永远是ipv4地址(在代理向ipv4地址的端口注册信息的前提下),详见register_agent函数 + ip, port = str(data[0]['IPADDR']).split("|")[0], data[0]['PORT'] + # 将policy和policy_param作为参数传递到对应接口 - res = requests.post("http://%s:%s/script" % (ip, port), json={'policy': policy, 'param': policy_param}) - if res.status_code == 200: - return None - else: + try: + res = requests.post("http://%s:%s/script" % (ip, port), timeout=3, + json={'policy': policy, 'param': policy_param}) + if res.status_code == 200: + return None error("任务分发错误,code: " + str(res.status_code) + " err: " + str(res.text)) return res.text + except Exception as e: + if RUN_DEV: + return None + else: + error(str(e)) + return str(e) @bp.post("/res") |
