我有一个程序需要大约1秒才能运行并将文件作为输入并生成另一个文件作为输出。问题是我必须能够每秒处理大约30个文件。要处理的文件将作为队列(通过memcached实现)提供,并且不必按顺序处理,因此基本上程序的实例检出要处理的文件并执行此操作。我可以使用一个进程管理器,在系统资源可用时自动启动程序实例。
简单来说,“系统资源”只是表示“一次最多两个进程”,但如果我移动到另一台机器,则可以是2或10或100或其他任何东西。我至少可以使用实用程序来处理这个问题。在复杂的一端,我想在CPU可用时启动另一个进程,因为这些机器将是专用的。 CPU时间似乎是约束资源 - 程序不是内存密集型的。
什么工具可以完成这种流程管理?
答案 0 :(得分:0)
风暴 - 如果不了解更多细节,我建议Backtype Storm。但它可能意味着完全重写您当前的代码。 : - )
Tutorial的更多细节,但它基本上需要工作元组并通过工作节点的拓扑分布它们。 “spout”在拓扑中发挥作用,“'bolt”是图中的一个步骤/任务,其中发生了一些工作。当一个螺栓完成它的工作时,它会将相同/新的元组发回到拓扑中。螺栓可以并行或串联工作。