1

我需要通过在输入字符串上应用一组正则表达式来将输入字符串拆分为输出字符串(按某种顺序)。我想用 akka 演员集群实现这个功能,我分散正则表达式和输入字符串并收集字符串。但是我想知道在收集回处理过的字符串时,如何跟踪订单。我不确定“Scatter-Gather”是否是正确的方法,如果还有其他适合的方法,请提出建议。

4

1 回答 1

2

我想您将不得不向收集者提供有关如何按顺序组装字符串的提示。您没有提到订单是如何建立的:初始拆分是否可以定义订单或正则表达式处理是否会定义它。

在这两种情况下,您都需要跟踪 3 件事: - 初始来源, - 每件单品的顺序 - 总件数

您可以使用如下消息:

case class StringSegment(id:String, total:Int, seqNr:Int, payload:String)

散射StringSegment器根据输入产生 s:

def scatter(s:String):List[StringSegment] ...
scatter(input).foreach(msg => processingActor ! msg)

收集者将它们组装在一起,使用seqNr来了解顺序并total了解所有部件何时出现。

于 2013-09-19T13:44:22.233 回答