我正在开发一个Web应用程序,其中我在前端运行Java并在后端运行shell脚本。该应用程序主要是关于分析许多文件,并且java程序从用户那里获得输入,例如他们想要分析哪个文件从哪个日期到他们想要分析的日期。让我们假设用户从7月1日到8日提供数据。我需要处理8天的文件。每天有大约100个文件需要处理。所以我的目标是让这个过程平行进行,而不是按顺序进行。我基本上有两个想法。我想与你分享这一点,并得到你的建议。从作为后台作业运行的shell脚本生成进程
计划1: 有一个Java程序(业务层),它使用流程构建器调用一个shell脚本。我可以将用户给定的日期(例如(1-8))分成4个线程,每个线程可以执行两天的操作。如(1-2)线程1和(3-4)线程2并继续。如果我遵循这种方法,什么是利弊。另外如何通过这种方法在线程之间进行协调。
计划2: 从Java调用shell脚本,并在shell脚本内产生多个进程,正如我前面所说,我可以产生进程1来完成日期(1-2)和进程2(3- 4),并继续。这种方法的优点和缺点是什么?我正在将处理后的输出写入单个文件。所以如果我有多个进程,我怎样才能让单个文件被多个进程更新。
而且关系到我的问题的任何链接的任何参考
重要: 正如我告诉我需要处理的日志文件100对一个shell脚本中的每一天,和我的要求之一就是不断更新我的关于我的作业在shell脚本(即)第1天已完成,第2天已完成等等的前端环境。我知道我可以通过shell脚本进行回应,然后我可以从Java获得价值。但问题是,如果我在shell脚本中执行一个echo,在处理文件的循环中,我的调用终止,并且我必须再次从Java回调。任何有关如何进行此更新的想法都会发生。
为什么你需要使用shell脚本? – 2012-07-18 15:37:04
我正在处理那些文件 – NandaKumar 2012-07-18 15:40:48