在命令行或Rest客户端中执行脚本

时间:2014-10-07 12:21:48

标签: java python web-services architecture

我有一个需要使用python脚本的java Web应用程序。 Web应用程序将为脚本提供一个文件作为输入,并将一些文本作为输出。

我有两个选择:

  1. 使用HTTP包装python脚本,并将其作为REST服务从Web应用程序中调用
  2. 只需从Web应用程序执行命令行
  3. 我应该选择哪个选项?为什么?此脚本不会被任何其他应用程序使用。

2 个答案:

答案 0 :(得分:0)

尝试两种方法但尝试在命令行中执行以逐行了解输出。 您可以在该行执行时找到该行中的任何错误 在rest服务时,它会返回一个Http响应。

答案 1 :(得分:0)

我个人建议将Python代码包装在HTTP层中并将其转换为REST Web服务。我不怀疑许多成功的应用程序是通过从命令行调用脚本编写的,但我认为在涉及到Web服务的自由时,有一些非常好的东西。看起来将Python应用程序放在Web服务中似乎更像是“以服务为导向”的方式,因此,期望这样做可以为您提供SOA的典型优势似乎是合理的。

这可能适用于您的情况,也可能不适用于您的情况,但如果这些注意事项都不适用,那么这似乎意味着“这种选择将不会那么糟糕”。

我认为使用Web服务最重要的是可扩展性。如果命令行应用程序可以咀嚼很多服务器资源,那么让它在与Web应用程序不同的服务器上运行会很好。这样,当其他用户执行导致调用Python应用程序的事情时,未使用与此Python应用程序交互的应用程序部分的其他用户将不会减少他们的体验。将Python代码置于Web服务之后也可以使集群更容易。如果您可以从缓存中获得一些好处,那么利用HTTP和代理服务器中的缓存机制也很容易。

可能性很好的另一件事是可测试性。有很多很好的工具可以测试Web应用程序与Web服务交谈的常见情况,而在他们调用命令行应用程序时对应用程序进行全面测试可能需要更多的工作。