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

This commit is contained in:
mxd
2022-01-27 21:16:50 +08:00
parent 998d0a53c8
commit f8f38b0a18

View File

@@ -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();
}
}