正在显示
6 个修改的文件
包含
206 行增加
和
11 行删除
| ... | ... | @@ -11,6 +11,7 @@ from . import task_detail |
| 11 | 11 | from . import task_delete |
| 12 | 12 | from . import task_count |
| 13 | 13 | from . import task_kill |
| 14 | +from . import task_update | |
| 14 | 15 | from app.decorators.token_decorator import token_decorator |
| 15 | 16 | |
| 16 | 17 | |
| ... | ... | @@ -64,3 +65,13 @@ class DataManager(BlueprintApi): |
| 64 | 65 | 任务统计 |
| 65 | 66 | """ |
| 66 | 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 | |
| \ No newline at end of file | ... | ... |
app/modules/data/task/task_update.py
0 → 100644
| 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 | + } | |
| \ No newline at end of file | ... | ... |
| ... | ... | @@ -3,7 +3,7 @@ |
| 3 | 3 | #createtime: 2021/7/19 |
| 4 | 4 | #email: nheweijun@sina.com |
| 5 | 5 | |
| 6 | - | |
| 6 | +import configure | |
| 7 | 7 | from app.util.component.ApiTemplate import ApiTemplate |
| 8 | 8 | from app.util.component.StructurePrint import StructurePrint |
| 9 | 9 | from app.models import db |
| ... | ... | @@ -35,8 +35,7 @@ class Api(ApiTemplate): |
| 35 | 35 | state=0, |
| 36 | 36 | task_type=5, |
| 37 | 37 | creator=self.para.get("creator"), |
| 38 | - process="影像创建金字塔中", | |
| 39 | - task_pid=pyramid_process.pid) | |
| 38 | + process="影像创建金字塔中") | |
| 40 | 39 | |
| 41 | 40 | db.session.add(task) |
| 42 | 41 | db.session.commit() |
| ... | ... | @@ -62,17 +61,20 @@ class Api(ApiTemplate): |
| 62 | 61 | task_writer.update_process("开始创建...") |
| 63 | 62 | |
| 64 | 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 | 69 | response:requests.Response = requests.post(url,data=self.para) |
| 66 | 70 | |
| 67 | 71 | if not response.json().get("result"): |
| 68 | 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 | 75 | except Exception as e: |
| 74 | 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 | 78 | task_writer.update_process( e.__str__()) |
| 77 | 79 | task_writer.update_process("任务中止!") |
| 78 | 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 | 5 | |
| 6 | 6 | |
| 7 | 7 | from app.util.component.ApiTemplate import ApiTemplate |
| 8 | +from app.util.component.StructurePrint import StructurePrint | |
| 8 | 9 | import requests |
| 9 | 10 | from app.util.component.UserCheck import UserCheck |
| 10 | 11 | |
| ... | ... | @@ -17,15 +18,17 @@ class Api(ApiTemplate): |
| 17 | 18 | res = {} |
| 18 | 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 | 22 | data={"guid":self.para.get("guid")}) |
| 23 | + | |
| 22 | 24 | if not user_req.json().get("result"): |
| 23 | 25 | raise Exception("服务不存在!") |
| 24 | 26 | # 验证权限 |
| 25 | 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 | 30 | response:requests.Response = requests.post(url,data=self.para) |
| 31 | + | |
| 29 | 32 | if not response.json().get("result"): |
| 30 | 33 | raise Exception("由于{},影像地图删除失败!".format(response.json().get("msg"))) |
| 31 | 34 | res["result"] = True | ... | ... |
| ... | ... | @@ -41,7 +41,7 @@ class Api(ApiTemplate): |
| 41 | 41 | |
| 42 | 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 | 45 | response:requests.Response = requests.post(edit_url,self.para) |
| 46 | 46 | if not response.json().get("result"): |
| 47 | 47 | raise Exception("查询影像地图失败!") | ... | ... |
请
注册
或
登录
后发表评论