Ver código fonte

修复定时任务无法DEBUG的问题

mxd 3 anos atrás
pai
commit
f8f38b0a18

+ 4 - 0
magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java

@@ -3,6 +3,7 @@ package org.ssssssss.magicapi.task.web;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
 import org.ssssssss.magicapi.core.logging.MagicLoggerContext;
 import org.ssssssss.magicapi.core.model.DebugRequest;
 import org.ssssssss.magicapi.core.model.JsonBean;
@@ -28,11 +29,14 @@ public class MagicTaskController extends MagicController implements MagicExcepti
 		String script = entity.getScript();
 		DebugRequest debugRequest = DebugRequest.create(request);
 		MagicLoggerContext.SESSION.set(debugRequest.getRequestedClientId());
+		String sessionAndScriptId = debugRequest.getRequestedClientId() + debugRequest.getRequestedScriptId();
 		try {
 			MagicScriptDebugContext magicScriptContext = debugRequest.createMagicScriptContext(configuration.getDebugTimeout());
+			WebSocketSessionManager.addMagicScriptContext(sessionAndScriptId, magicScriptContext);
 			magicScriptContext.setScriptName(MagicConfiguration.getMagicResourceService().getScriptName(entity));
 			return new JsonBean<>(ScriptManager.executeScript(script, magicScriptContext));
 		} finally {
+			WebSocketSessionManager.removeMagicScriptContext(sessionAndScriptId);
 			MagicLoggerContext.SESSION.remove();
 		}
 	}