Spring批处理运行python代码?

时间:2014-06-11 11:54:44

标签: python spring-batch

是否可以使用Spring Batch来运行Python程序? Jython不是一个选项(因为依赖于许多Python库)。

2 个答案:

答案 0 :(得分:6)

如果你愿意,SystemCommandTasklet允许你执行你想要的任何shell命令,包括python脚本。您可以在此处阅读文档:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/core/step/tasklet/SystemCommandTasklet.html

答案 1 :(得分:0)

您可以将python程序称为可执行文件。

这样做的玩具python程序是:

import java.io.*;
class Interact {

  static public void main(String[] args) throws IOException {
    Process p = Runtime.getRuntime().exec("python3 python_program.py arg1 arg2");
     BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    String line;
    while ((line = in.readLine()) != null) {
        System.out.println(line);
    }
  }
}

如果python_program.py是以下

import sys
if __name__ == "__main__"
     print("my args are",sys.argv[1:])

结果应该是

my args are ['arg1', 'arg2']

当然,对于更完整的程序,您应该阅读stderr,检查返回代码等...