0

我有一个程序需要大约 1 秒才能运行,并将一个文件作为输入并生成另一个文件作为输出。问题是我必须能够每秒处理大约 30 个文件。要处理的文件将作为队列提供(通过 memcached 实现)并且不必完全按顺序处理,因此基本上程序的一个实例会检出要处理的文件并这样做。我可以使用进程管理器,在系统资源可用时自动启动程序实例。

在简单的结尾,“系统资源”将简单地表示“一次最多两个进程”,但如果我移动到另一台机器,这可能是 2 或 10 或 100 或其他任何东西。至少我可以使用一个实用程序来处理这个问题。在复杂的一端,我想在 CPU 可用时启动另一个进程,因为这些机器将是专用的。CPU 时间似乎是限制资源——程序不是内存密集型的。

有什么工具可以完成这种流程管理?

4

1 回答 1

0

Storm - 在不知道更多细节的情况下,我建议Backtype Storm。但这可能意味着彻底重写您当前的代码。:-)

更多细节在Tutorial,但它基本上需要工作元组并通过工作节点的拓扑分布它们。“spout”将工作发送到拓扑中,“'bolt”是图中发生一些工作的步骤/任务。当一个螺栓完成它的工作时,它会将相同/新的元组发送回拓扑。螺栓可以并行或串联工作。

于 2012-05-31T20:06:08.417 回答