我有一个程序需要大约 1 秒才能运行,并将一个文件作为输入并生成另一个文件作为输出。问题是我必须能够每秒处理大约 30 个文件。要处理的文件将作为队列提供(通过 memcached 实现)并且不必完全按顺序处理,因此基本上程序的一个实例会检出要处理的文件并这样做。我可以使用进程管理器,在系统资源可用时自动启动程序实例。
在简单的结尾,“系统资源”将简单地表示“一次最多两个进程”,但如果我移动到另一台机器,这可能是 2 或 10 或 100 或其他任何东西。至少我可以使用一个实用程序来处理这个问题。在复杂的一端,我想在 CPU 可用时启动另一个进程,因为这些机器将是专用的。CPU 时间似乎是限制资源——程序不是内存密集型的。
有什么工具可以完成这种流程管理?