提交 3bb11cd64be8af5891688cb9b957e7be5de2de8d

作者 nheweijun
1 个父辈 111aa1ab

2022.02.10 回滚前

@@ -11,6 +11,7 @@ from . import task_detail @@ -11,6 +11,7 @@ from . import task_detail
11 from . import task_delete 11 from . import task_delete
12 from . import task_count 12 from . import task_count
13 from . import task_kill 13 from . import task_kill
  14 +from . import task_update
14 from app.decorators.token_decorator import token_decorator 15 from app.decorators.token_decorator import token_decorator
15 16
16 17
@@ -64,3 +65,13 @@ class DataManager(BlueprintApi): @@ -64,3 +65,13 @@ class DataManager(BlueprintApi):
64 任务统计 65 任务统计
65 """ 66 """
66 return task_count.Api().result 67 return task_count.Api().result
  68 +
  69 +
  70 + @staticmethod
  71 + @bp.route('/Update', methods=['POST'])
  72 + @swag_from(task_update.Api.api_doc)
  73 + def task_update():
  74 + """
  75 + 任务信息更新
  76 + """
  77 + return task_update.Api().result
  1 +# coding=utf-8
  2 +#author: 4N
  3 +#createtime: 2020/9/4
  4 +#email: nheweijun@sina.com
  5 +
  6 +from ..models import db,Task,Process
  7 +from app.util.component.ApiTemplate import ApiTemplate
  8 +import datetime
  9 +import json
  10 +import uuid
  11 +class Api(ApiTemplate):
  12 + api_name = "任务更新"
  13 + def para_check(self):
  14 + if not self.para.get("task_guid"):
  15 + raise Exception("缺乏task_guid参数。")
  16 +
  17 + def process(self):
  18 +
  19 + res = {}
  20 + try:
  21 + task_guid = self.para.get("task_guid")
  22 + msg = self.para.get("msg")
  23 + task:Task = Task.query.filter_by(guid=task_guid)
  24 + task.update(json.loads(self.para.get("update")))
  25 +
  26 + if msg:
  27 + message = "{} {}".format(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), msg)
  28 + task_process_guid = uuid.uuid1().__str__()
  29 + task_process = Process(guid=task_process_guid, message=message, time=datetime.datetime.now(),
  30 + task_guid=task_guid)
  31 + db.session.add(task_process)
  32 + db.session.commit()
  33 + except Exception as e:
  34 + raise e
  35 + return res
  36 +
  37 + api_doc={
  38 + "tags":["任务接口"],
  39 + "parameters":[
  40 + {"name": "task_guid",
  41 + "in": "formData",
  42 + "type": "string"},
  43 + {"name": "update",
  44 + "in": "formData",
  45 + "type": "string"},
  46 + {"name": "msg",
  47 + "in": "formData",
  48 + "type": "string"},
  49 +
  50 + ],
  51 + "responses":{
  52 + 200:{
  53 + "schema":{
  54 + "properties":{
  55 + }
  56 + }
  57 + }
  58 + }
  59 + }
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 #createtime: 2021/7/19 3 #createtime: 2021/7/19
4 #email: nheweijun@sina.com 4 #email: nheweijun@sina.com
5 5
6 - 6 +import configure
7 from app.util.component.ApiTemplate import ApiTemplate 7 from app.util.component.ApiTemplate import ApiTemplate
8 from app.util.component.StructurePrint import StructurePrint 8 from app.util.component.StructurePrint import StructurePrint
9 from app.models import db 9 from app.models import db
@@ -35,8 +35,7 @@ class Api(ApiTemplate): @@ -35,8 +35,7 @@ class Api(ApiTemplate):
35 state=0, 35 state=0,
36 task_type=5, 36 task_type=5,
37 creator=self.para.get("creator"), 37 creator=self.para.get("creator"),
38 - process="影像创建金字塔中",  
39 - task_pid=pyramid_process.pid) 38 + process="影像创建金字塔中")
40 39
41 db.session.add(task) 40 db.session.add(task)
42 db.session.commit() 41 db.session.commit()
@@ -62,17 +61,20 @@ class Api(ApiTemplate): @@ -62,17 +61,20 @@ class Api(ApiTemplate):
62 task_writer.update_process("开始创建...") 61 task_writer.update_process("开始创建...")
63 62
64 url = "{}/API/Service/Image/BuildPyramid".format(para.get("url")) 63 url = "{}/API/Service/Image/BuildPyramid".format(para.get("url"))
  64 +
  65 +
  66 + self.para["from"] = configure.deploy_ip_host
  67 + self.para["task_guid"] = task_guid
  68 +
65 response:requests.Response = requests.post(url,data=self.para) 69 response:requests.Response = requests.post(url,data=self.para)
66 70
67 if not response.json().get("result"): 71 if not response.json().get("result"):
68 raise Exception("由于{},影像服务修改失败!".format(response.json().get("msg"))) 72 raise Exception("由于{},影像服务修改失败!".format(response.json().get("msg")))
69 -  
70 - task_writer.update_task({"state":1,"update_time":datetime.datetime.now(),"process" : "创建完成"})  
71 - task_writer.update_process("创建完成!")  
72 - 73 + else:
  74 + task_writer.update_task({"task_pid": int(response.json().get("data"))})
73 except Exception as e: 75 except Exception as e:
74 try: 76 try:
75 - task_writer.update_task({"state": -1,"update_time":datetime.datetime.now(),"process": "下载失败"}) 77 + task_writer.update_task({"state": -1,"update_time":datetime.datetime.now(),"process": "创建失败"})
76 task_writer.update_process( e.__str__()) 78 task_writer.update_process( e.__str__())
77 task_writer.update_process("任务中止!") 79 task_writer.update_process("任务中止!")
78 except Exception as ee: 80 except Exception as ee:
  1 +# coding=utf-8
  2 +#author: 4N
  3 +#createtime: 2021/7/19
  4 +#email: nheweijun@sina.com
  5 +
  6 +import configure
  7 +from app.util.component.ApiTemplate import ApiTemplate
  8 +from app.util.component.StructurePrint import StructurePrint
  9 +from app.models import db
  10 +from app.modules.data.models import Task
  11 +import multiprocessing
  12 +import uuid
  13 +import datetime
  14 +import requests
  15 +from app.util.component.TaskController import TaskController
  16 +from app.util.component.TaskWriter import TaskWriter
  17 +class Api(ApiTemplate):
  18 +
  19 + api_name = "创建影像金字塔"
  20 +
  21 + def process(self):
  22 +
  23 + # 返回结果
  24 + res = {}
  25 + try:
  26 + task_guid = uuid.uuid1().__str__()
  27 +
  28 +
  29 + pyramid_process = multiprocessing.Process(target=self.task, args=(task_guid,self.para))
  30 + pyramid_process.start()
  31 +
  32 + task = Task(guid=task_guid,
  33 + name="{}构建影像金字塔".format(self.para.get("alias")),
  34 + create_time=datetime.datetime.now(),
  35 + state=0,
  36 + task_type=5,
  37 + creator=self.para.get("creator"),
  38 + process="影像创建金字塔中",
  39 + task_pid=pyramid_process.pid)
  40 +
  41 + db.session.add(task)
  42 + db.session.commit()
  43 +
  44 + res["data"] = "创建影像金字塔任务已提交!"
  45 + res["result"] = True
  46 +
  47 + except Exception as e:
  48 + raise Exception("数据库错误!")
  49 +
  50 + return res
  51 +
  52 +
  53 + def task(self,task_guid,para):
  54 + task_writer = None
  55 + try:
  56 +
  57 + #任务控制,等待执行
  58 + TaskController.wait(task_guid)
  59 + task_writer = TaskWriter(task_guid)
  60 +
  61 + task_writer.update_task({"state":2,"update_time":datetime.datetime.now(),"process" : "创建中"})
  62 + task_writer.update_process("开始创建...")
  63 +
  64 + url = "{}/API/Service/Image/BuildPyramid".format(para.get("url"))
  65 +
  66 + # s = requests.session()
  67 + # s.keep_alive = True
  68 + # s.post()
  69 +
  70 + self.para["from"] = configure.deploy_ip_host
  71 +
  72 + response:requests.Response = requests.post(url,data=self.para)
  73 +
  74 + if not response.json().get("result"):
  75 + raise Exception("由于{},影像服务修改失败!".format(response.json().get("msg")))
  76 +
  77 + task_writer.update_task({"state":1,"update_time":datetime.datetime.now(),"process" : "创建完成"})
  78 + task_writer.update_process("创建完成!")
  79 +
  80 + except Exception as e:
  81 + try:
  82 + task_writer.update_task({"state": -1,"update_time":datetime.datetime.now(),"process": "创建失败"})
  83 + task_writer.update_process(e.__str__())
  84 + task_writer.update_process("任务中止!")
  85 + except Exception as ee:
  86 + StructurePrint().print(ee.__str__())
  87 + raise e
  88 + finally:
  89 + try:
  90 + task_writer.close()
  91 + except Exception as e:
  92 + StructurePrint().print(e.__str__())
  93 +
  94 +
  95 + api_doc = {
  96 + "tags": ["影像服务接口"],
  97 + "parameters": [
  98 + {"name": "guid",
  99 + "in": "formData",
  100 + "type": "string",
  101 + "description": "guid"},
  102 + {"name": "url",
  103 + "in": "formData",
  104 + "type": "string",
  105 + "description": "url"},
  106 + {"name": "alias",
  107 + "in": "formData",
  108 + "type": "string",
  109 + "description": "影像alias"},
  110 + ],
  111 + "responses": {
  112 + 200: {
  113 + "schema": {
  114 + "properties": {
  115 + }
  116 + }
  117 + }
  118 + }
  119 + }
  120 +
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 5
6 6
7 from app.util.component.ApiTemplate import ApiTemplate 7 from app.util.component.ApiTemplate import ApiTemplate
  8 +from app.util.component.StructurePrint import StructurePrint
8 import requests 9 import requests
9 from app.util.component.UserCheck import UserCheck 10 from app.util.component.UserCheck import UserCheck
10 11
@@ -17,15 +18,17 @@ class Api(ApiTemplate): @@ -17,15 +18,17 @@ class Api(ApiTemplate):
17 res = {} 18 res = {}
18 try: 19 try:
19 20
20 - user_req: requests.Response = requests.post("{}/API/Service/Info".format(self.para.get("url")), 21 + user_req: requests.Response = requests.post("{}/ImageServer/API/Service/Info".format(self.para.get("url")),
21 data={"guid":self.para.get("guid")}) 22 data={"guid":self.para.get("guid")})
  23 +
22 if not user_req.json().get("result"): 24 if not user_req.json().get("result"):
23 raise Exception("服务不存在!") 25 raise Exception("服务不存在!")
24 # 验证权限 26 # 验证权限
25 UserCheck.verify(user_req.json().get("data").get("service").get("creator")) 27 UserCheck.verify(user_req.json().get("data").get("service").get("creator"))
26 28
27 - url = "{}/API/Service/Delete".format(self.para.get("url")) 29 + url = "{}/ImageServer/API/Service/Delete".format(self.para.get("url"))
28 response:requests.Response = requests.post(url,data=self.para) 30 response:requests.Response = requests.post(url,data=self.para)
  31 +
29 if not response.json().get("result"): 32 if not response.json().get("result"):
30 raise Exception("由于{},影像地图删除失败!".format(response.json().get("msg"))) 33 raise Exception("由于{},影像地图删除失败!".format(response.json().get("msg")))
31 res["result"] = True 34 res["result"] = True
@@ -41,7 +41,7 @@ class Api(ApiTemplate): @@ -41,7 +41,7 @@ class Api(ApiTemplate):
41 41
42 elif s_type in [ServiceType.image_service.value]: 42 elif s_type in [ServiceType.image_service.value]:
43 43
44 - edit_url = "{}/API/Service/Info".format(self.para.get("url")) 44 + edit_url = "{}/ImageServer/API/Service/Info".format(self.para.get("url"))
45 response:requests.Response = requests.post(edit_url,self.para) 45 response:requests.Response = requests.post(edit_url,self.para)
46 if not response.json().get("result"): 46 if not response.json().get("result"):
47 raise Exception("查询影像地图失败!") 47 raise Exception("查询影像地图失败!")
注册登录 后发表评论