From 08f08af5c89116ad69ee832509a90bd89b6b858e Mon Sep 17 00:00:00 2001 From: Cyril Date: Mon, 3 Jun 2024 17:30:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=86getRLResult=E4=BB=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E4=B8=AD=E8=AF=BB=E5=8F=96=EF=BC=8C56?= =?UTF-8?q?=E4=B8=8A=E7=9A=84get=5Funcertainty=E7=9A=84=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=92=8Cexec=E5=8A=9F=E8=83=BD=E8=A7=A3?= =?UTF-8?q?=E8=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springboot/controller/RLTaskController.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/buaa/springboot/controller/RLTaskController.java b/src/main/java/com/buaa/springboot/controller/RLTaskController.java index 27ba44b..499e4c0 100644 --- a/src/main/java/com/buaa/springboot/controller/RLTaskController.java +++ b/src/main/java/com/buaa/springboot/controller/RLTaskController.java @@ -92,16 +92,11 @@ public class RLTaskController { // return ResponseEntity.ok("执行任务成功"); // } -// @GetMapping("/getResults/{id}") -// public ResponseEntity getResults(@PathVariable int id) { -// RLTask rlTask = rlTaskService.getRLTaskById(id); -// if (Objects.equals(rlTask.getStatus(), "finished")) { -// return ResponseEntity.ok(rlTask.getResult()); -// } -// else { -// return ResponseEntity.ok("任务未完成或不存在!"); -// } -// } + @GetMapping("/getResults/{id}") + public ResponseEntity getResults(@PathVariable int id) { + RLTask rlTask = rlTaskService.getRLTaskById(id); + return ResponseEntity.ok(rlTask.getResult()); + } @GetMapping("/openTacView") public void openTacView() { -- Gitee From 58c7a12b2073f6d578fda1798854a283143ee124 Mon Sep 17 00:00:00 2001 From: Cyril Date: Thu, 5 Sep 2024 18:40:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?20240905=20=E5=A4=A7=E6=94=B9=E5=89=8D?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BoardController.java | 21 +++++++++++ .../controller/ODTaskController.java | 37 +++++++++++++++++-- .../com/buaa/springboot/entity/board.java | 5 +++ .../buaa/springboot/mapper/BoardMapper.java | 10 +++++ .../buaa/springboot/service/BoardService.java | 9 +++++ .../service/impl/BoardServiceImpl.java | 33 +++++++++++++++++ .../service/impl/ODTaskServiceImpl.java | 15 ++++++++ 7 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/buaa/springboot/controller/BoardController.java create mode 100644 src/main/java/com/buaa/springboot/entity/board.java create mode 100644 src/main/java/com/buaa/springboot/mapper/BoardMapper.java create mode 100644 src/main/java/com/buaa/springboot/service/BoardService.java create mode 100644 src/main/java/com/buaa/springboot/service/impl/BoardServiceImpl.java diff --git a/src/main/java/com/buaa/springboot/controller/BoardController.java b/src/main/java/com/buaa/springboot/controller/BoardController.java new file mode 100644 index 0000000..1ae1415 --- /dev/null +++ b/src/main/java/com/buaa/springboot/controller/BoardController.java @@ -0,0 +1,21 @@ +package com.buaa.springboot.controller; + +import com.buaa.springboot.service.BoardService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/board") +@CrossOrigin(origins = "*") +public class BoardController { + @Autowired + private BoardService boardService; + @PostMapping("/startGUM") + public String startGUM() { + boardService.startGUM(); + return "启动成功"; + } +} diff --git a/src/main/java/com/buaa/springboot/controller/ODTaskController.java b/src/main/java/com/buaa/springboot/controller/ODTaskController.java index 1f53a06..7929d50 100644 --- a/src/main/java/com/buaa/springboot/controller/ODTaskController.java +++ b/src/main/java/com/buaa/springboot/controller/ODTaskController.java @@ -16,6 +16,8 @@ import java.time.Instant; import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; @Data @Accessors(chain = true) @@ -25,7 +27,7 @@ import java.util.Objects; public class ODTaskController { @Autowired private ODTaskService odTaskService; - + private final Lock lock = new ReentrantLock(); @GetMapping("/hello") public String hello() { return "Hello, World!"; @@ -86,9 +88,36 @@ public class ODTaskController { @PostMapping("/exec/{id}") public ResponseEntity execODTask(@PathVariable int id) { - odTaskService.execODTask(id); - String result = odTaskService.getODTaskResults(id); - odTaskService.saveODTaskResults(id,result); +// lock.lock(); +// try { +// odTaskService.execODTask(id); +// } finally { +// lock.unlock(); +// } +// lock.lock(); +// String result; +// try { +// result = odTaskService.getODTaskResults(id); +// } finally { +// lock.unlock(); +// } +// odTaskService.saveODTaskResults(id,result); +// return ResponseEntity.ok("执行任务成功"); + // 加锁 + lock.lock(); + try { + // 执行指定ID的任务 + odTaskService.execODTask(id); + + // 获取任务执行结果 + String result = odTaskService.getODTaskResults(id); + + // 保存任务执行结果 + odTaskService.saveODTaskResults(id, result); + } finally { + // 确保在所有情况下释放锁 + lock.unlock(); + } return ResponseEntity.ok("执行任务成功"); } diff --git a/src/main/java/com/buaa/springboot/entity/board.java b/src/main/java/com/buaa/springboot/entity/board.java new file mode 100644 index 0000000..fd80c6d --- /dev/null +++ b/src/main/java/com/buaa/springboot/entity/board.java @@ -0,0 +1,5 @@ +package com.buaa.springboot.entity; + +public class board { + +} diff --git a/src/main/java/com/buaa/springboot/mapper/BoardMapper.java b/src/main/java/com/buaa/springboot/mapper/BoardMapper.java new file mode 100644 index 0000000..2957298 --- /dev/null +++ b/src/main/java/com/buaa/springboot/mapper/BoardMapper.java @@ -0,0 +1,10 @@ +package com.buaa.springboot.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.buaa.springboot.entity.board; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BoardMapper extends BaseMapper { + //TODO:暂时用不到 +} diff --git a/src/main/java/com/buaa/springboot/service/BoardService.java b/src/main/java/com/buaa/springboot/service/BoardService.java new file mode 100644 index 0000000..13d04b3 --- /dev/null +++ b/src/main/java/com/buaa/springboot/service/BoardService.java @@ -0,0 +1,9 @@ +package com.buaa.springboot.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.buaa.springboot.entity.board; +import com.buaa.springboot.mapper.BoardMapper; + +public interface BoardService { + public void startGUM(); +} diff --git a/src/main/java/com/buaa/springboot/service/impl/BoardServiceImpl.java b/src/main/java/com/buaa/springboot/service/impl/BoardServiceImpl.java new file mode 100644 index 0000000..044de17 --- /dev/null +++ b/src/main/java/com/buaa/springboot/service/impl/BoardServiceImpl.java @@ -0,0 +1,33 @@ +package com.buaa.springboot.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.buaa.springboot.entity.board; +import com.buaa.springboot.mapper.BoardMapper; +import com.buaa.springboot.service.BoardService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class BoardServiceImpl extends ServiceImpl implements BoardService { + public void startGUM() { + List commandList1 = new ArrayList<>(); + try { + //TODO board的conda环境路径需要更改 + commandList1.add("D:\\Anaconda\\envs\\board\\python.exe"); + commandList1.add("C:\\Users\\Admin\\Desktop\\GUM.py"); + ProcessBuilder builder = new ProcessBuilder(commandList1); + Process process = builder.start(); + + List commandList2 = new ArrayList<>(); + commandList2.add("D:\\Anaconda\\envs\\board\\python.exe"); + commandList2.add("C:\\Users\\Admin\\Desktop\\rectangle.py"); + ProcessBuilder builder2 = new ProcessBuilder(commandList2); + Process process2 = builder2.start(); + + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/com/buaa/springboot/service/impl/ODTaskServiceImpl.java b/src/main/java/com/buaa/springboot/service/impl/ODTaskServiceImpl.java index 67a5b90..327eea9 100644 --- a/src/main/java/com/buaa/springboot/service/impl/ODTaskServiceImpl.java +++ b/src/main/java/com/buaa/springboot/service/impl/ODTaskServiceImpl.java @@ -228,6 +228,21 @@ public class ODTaskServiceImpl extends ServiceImpl impleme } catch (FileNotFoundException e) { e.printStackTrace(); } + //delete the avgResult.txt + List commandList1 = new ArrayList<>(); + try { + commandList1.add("cmd"); + commandList1.add("/c"); + commandList1.add("del"); + commandList1.add("D:\\dockerResult\\avgResult.txt"); + ProcessBuilder builder1 = new ProcessBuilder(commandList1); + Process process1 = builder1.start(); + consumeStream(process1.getInputStream()); + consumeStream(process1.getErrorStream()); + process1.waitFor(); + } catch (Exception e) { + throw new RuntimeException(e); + } return jsonString; } -- Gitee