2017-07-06 70 views
-1

一个Python脚本我需要执行从我的用户界面传递参数的python脚本并显示结果。我知道如何使用ProcessBuilder(下面)来做到这一点,但我认为从相关的Spring @Service调用这段代码并不是一个好主意(线程问题,并发运行的实例过多等)。最好的方法是什么?运行从Spring @服务

@Override 
public String executeLatestAlgorithm(String json) { 

    try { 
     ProcessBuilder probuilder = new ProcessBuilder("somescript.py", json); 
     Process p = probuilder.start(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     return in.readLine(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

(垃圾代码,而无需任何显著ErrorHandling中 - 只是为了说明)

非常感谢,

一个

回答

1

显然Spring集成提供支持,以执行用Python编写的,JS,Groovy脚本等

https://github.com/spring-projects/spring-integration-samples/tree/master/applications/cafe-scripted

部分Python相关配置XML看起来如下

<service-activator input-channel="hotDrinks" 
    output-channel="preparedDrinks"> 
    <script:script lang="python" location="file:scripts/python/barista.py"> 
     <script:variable name="timeToPrepare" value="5" /> 
    </script:script> 
</service-activator>