Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 多个辅助脚本处理数据列表的模式_Design Patterns - Fatal编程技术网

Design patterns 多个辅助脚本处理数据列表的模式

Design patterns 多个辅助脚本处理数据列表的模式,design-patterns,Design Patterns,假设我有一个10000行字符串的列表,需要由100个工作脚本处理 我希望尽可能多的100个脚本同步运行 工作脚本完成一行后,它应该处理下一个可用的行,该行当前未被另一个工作脚本处理 如果一个工作脚本在某一行失败,它将跳过该行,并转到另一个工作脚本当前未处理的下一个可用行 工作脚本在任何时候都可能在未知时间内不可用 现在假设在最初的100个辅助脚本中,任何给定的辅助脚本都可能变得不可用(崩溃或使用当前数据花费的时间太长),但在一段时间后将再次可用。它可能会再次变得不可用,并且可能需要很长时间才能在

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

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

工作脚本完成一行后,它应该处理下一个可用的行,该行当前未被另一个工作脚本处理

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

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

现在假设在最初的100个辅助脚本中,任何给定的辅助脚本都可能变得不可用(崩溃或使用当前数据花费的时间太长),但在一段时间后将再次可用。它可能会再次变得不可用,并且可能需要很长时间才能在处理10000行期间再次可用

如何在初始100个辅助脚本同步运行的情况下处理所有10000行,但其中任何一行都可能变得不可用,并且在未知的随机时间之后,它可能再次变得可用,准备进行处理

我可以想象这样的事情:对所有10000行执行一个循环,另一个脚本每隔一段时间轮询所有可用的worker,并同步启动这些worker

我不确定我将如何处理这个问题。

对于这种情况非常有用。我解释得多了一点

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

此外,我假设您不希望看到100倍的加速,因为您的硬件肯定不会支持这一点

当然,如果我完全误解了,您实际上希望处理每个字符串100x(即每个脚本做不同的事情),那么请澄清