Skip to content

Commit 93defb7

Browse files
committed
优化
1 parent 20fd732 commit 93defb7

File tree

5 files changed

+21
-13
lines changed

5 files changed

+21
-13
lines changed

hsweb-web-core/src/main/java/org/hsweb/web/core/CoreAutoConfiguration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ private void initScript() {
5757
private void initScript(String language, Map<String, Object> vars) {
5858
try {
5959
DynamicScriptEngine engine = DynamicScriptEngineFactory.getEngine(language);
60+
6061
if (engine == null) return;
6162
vars.put("logger", LoggerFactory.getLogger("org.hsweb.script.".concat(language)));
6263
vars.put("scriptEngine", engine);

hsweb-web-service/hsweb-web-service-api/src/main/java/org/hsweb/web/service/script/DynamicScriptExecuteService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66
* Created by zhouhao on 16-6-29.
77
*/
88
public interface DynamicScriptExecuteService {
9-
Object exec(String scriptId, Map<String, Object> var) throws Throwable;
9+
Object exec(String scriptId, Map<String, Object> var) throws Exception;
1010

11-
Object exec(String name, String type, Map<String, Object> var) throws Throwable;
11+
Object exec(String name, String type, Map<String, Object> var) throws Exception;
1212

13+
interface ScriptRunner {
14+
Object execute(String idOrName, Map<String, Object> param) throws Exception;
15+
}
1316
}

hsweb-web-service/hsweb-web-service-simple/src/main/java/org/hsweb/web/service/impl/form/DynamicFormServiceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.hsweb.ezorm.rdb.meta.builder.TableBuilder;
1717
import org.hsweb.ezorm.rdb.meta.builder.simple.SimpleTableBuilder;
1818
import org.hsweb.ezorm.rdb.meta.parser.TableMetaParser;
19+
import org.hsweb.ezorm.rdb.simple.SimpleDatabase;
1920
import org.hsweb.web.bean.common.DeleteParam;
2021
import org.hsweb.web.bean.common.PagerResult;
2122
import org.hsweb.web.bean.common.QueryParam;

hsweb-web-service/hsweb-web-service-simple/src/main/java/org/hsweb/web/service/impl/quartz/SimpleJobFactory.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.hsweb.web.service.config.ConfigService;
2323
import org.hsweb.web.service.quartz.QuartzJobHistoryService;
2424
import org.hsweb.web.service.quartz.QuartzJobService;
25+
import org.hsweb.web.service.script.DynamicScriptExecuteService;
2526
import org.hsweb.web.service.user.UserService;
2627
import org.quartz.Job;
2728
import org.quartz.Scheduler;
@@ -34,7 +35,6 @@
3435
import org.springframework.util.Assert;
3536

3637
import javax.annotation.Resource;
37-
import java.lang.reflect.InvocationTargetException;
3838
import java.util.HashMap;
3939
import java.util.Map;
4040

@@ -56,6 +56,9 @@ public class SimpleJobFactory implements JobFactory {
5656
@Resource
5757
private ConfigService configService;
5858

59+
@Resource
60+
private DynamicScriptExecuteService dynamicScriptExecuteService;
61+
5962
@Autowired(required = false)
6063
private Map<String, ExpressionScopeBean> expressionScopeBeanMap;
6164

@@ -77,8 +80,10 @@ public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws Schedul
7780
//未找到用户名
7881
logger.warn("job executor user:{} not found!", username);
7982
}
83+
Map<String, Object> var = new HashMap<>();
8084
if (expressionScopeBeanMap != null)
81-
job.setDefaultVar(new HashMap<>(expressionScopeBeanMap));
85+
var.putAll(expressionScopeBeanMap);
86+
var.put("scriptExecutor", (DynamicScriptExecuteService.ScriptRunner) dynamicScriptExecuteService::exec);
8287
return job;
8388
} catch (Exception e) {
8489
throw new SchedulerException("create simple job instance error", e);

hsweb-web-service/hsweb-web-service-simple/src/main/java/org/hsweb/web/service/impl/script/DynamicScriptExecuteServiceImpl.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ public class DynamicScriptExecuteServiceImpl implements DynamicScriptExecuteServ
3535

3636
@Override
3737
@Transactional(rollbackFor = Throwable.class)
38-
public Object exec(String name, String type, Map<String, Object> var) throws Throwable {
38+
public Object exec(String name, String type, Map<String, Object> var) throws Exception {
3939
DynamicScript script = dynamicScriptService.selectByNameAndType(name, type);
4040
assertNotNull(script, "脚本不存在");
4141
return exec(script, var);
4242
}
4343

4444
@Override
4545
@Transactional(rollbackFor = Throwable.class)
46-
public Object exec(String id, Map<String, Object> var) throws Throwable {
46+
public Object exec(String id, Map<String, Object> var) throws Exception {
4747
if (id.contains(".")) {
4848
String nameAndType[] = id.split("[.]");
4949
return exec(nameAndType[0], nameAndType[1], var);
@@ -52,8 +52,9 @@ public Object exec(String id, Map<String, Object> var) throws Throwable {
5252
assertNotNull(script, "脚本不存在");
5353
return exec(script, var);
5454
}
55+
5556
@Transactional(rollbackFor = Throwable.class)
56-
protected Object exec(DynamicScript script, Map<String, Object> var) throws Throwable {
57+
protected Object exec(DynamicScript script, Map<String, Object> var) throws Exception {
5758
if (script.getStatus() != 1) {
5859
assertNotNull(null, "脚本已禁用");
5960
}
@@ -64,22 +65,19 @@ protected Object exec(DynamicScript script, Map<String, Object> var) throws Thro
6465
}
6566
if (expressionScopeBeanMap != null) {
6667
var.putAll(expressionScopeBeanMap);
68+
var.put("scriptExecutor", (ScriptRunner) this::exec);
6769
}
6870
ScriptContext context = engine.getContext(script.getId());
6971
//如果发生了变化,自动重新进行编译
7072
if (!context.getMd5().equals(MD5.defaultEncode(script.getContent()))) {
7173
dynamicScriptService.compile(script.getId());
7274
}
73-
ExecuteResult result = engine.execute(script.getId(), var);
74-
if (!result.isSuccess()) {
75-
if (result.getException() != null)
76-
throw result.getException();
77-
}
78-
return result.getResult();
75+
return engine.execute(script.getId(), var).getIfSuccess();
7976
}
8077

8178
protected void assertNotNull(Object po, String message) {
8279
if (po == null) throw new NotFoundException(message);
8380
}
8481

8582
}
83+

0 commit comments

Comments
 (0)