【发布时间】:2016-04-02 09:04:57
【问题描述】:
我们每分钟向多台服务器发送数百个文件。
目前我们正在生成仅包含 sftp 命令的 shell 脚本(通过 java 生成的文件)并将它们作为 shell 脚本执行。我们使用java的原因是根据目标路径和目标服务器来组织文件。最后,对于每个目标服务器,我们将拥有一个 shell 脚本。
现在我在想,如果我通过 java 代码本身发送文件而不是生成脚本并执行它,会不会更高效和快速
目前为 4 台服务器生成脚本需要 4 到 5 秒。因此,实际 sftp 的执行从第 5 秒开始并且非常快地完成(基于文件数)。如果我切换到 JSch 之类的 java sftp,它会和 shell 脚本中的 sftp 一样快还是更慢?
【问题讨论】:
-
有很多方法可以让 Java 实现比 shell 实现更快。但是它是否真的会取决于两者的实现,所以这真的不是一个可以回答的问题,具有合理的stackoverflow范围。我的建议是调查当前进程缓慢的问题有多大,调查 Java 实现可能需要多长时间,然后如果你认为可能的收益值得付出努力,那就去做,看看如何它带来了很大的不同。
-
为什么生成脚本需要 4-5 秒?这似乎是寻找效率低下的好地方。您可以生成一个脚本并在生成下一个之前运行它吗?
标签: java linux bash sftp ssh2-sftp