代码之家  ›  专栏  ›  技术社区  ›  KJW

多个工作脚本处理数据列表的模式

  •  0
  • KJW  · 技术社区  · 14 年前

    假设我有一个需要100个工作脚本处理的10000行字符串的列表。

    我希望100个脚本中有尽可能多的能同步运行。

    如果某个工作脚本在某一行上失败,它将跳过该行,并移到另一个工作脚本当前未处理的下一个可用行。

    任何时候的工作脚本都可能在未知的时间内不可用。

    如何处理所有10000行,初始的100个工作脚本同步运行,但其中任何一个可能变得不可用,并且在某个未知的随机时间之后,它可能再次变得可用,可以随时处理。

    我可以想象为所有10000行执行一个循环,并使用另一个脚本每隔一段时间轮询所有可用的工作线程,然后同步启动这些工作线程。

    我不知道该如何处理这个问题。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community Dunja Lalic    7 年前

    这个 producer/consumer pattern 对这种情况很有帮助。我解释得更详细一点 over here .

    也就是说,如果您的情况真的那么简单,那么更简单的技术可能更合适,比如均匀地分区数据。

    另外,我想你不会期望看到100倍的加速,因为你的硬件肯定不会支持。。。

    当然,如果我完全误解了,你真的想处理每个字符串100x(即每个脚本做一些不同的事情),那么请澄清。