我要求将输入字符串拆分为输出字符串/ s(带有一些顺序) 通过在输入字符串上应用一组正则表达式。我想实施 这个功能与akka演员集群以这种方式分散了 正则表达式和输入字符串并收集字符串。不过我想知道 收集已处理的字符串时,如何跟踪订单。我不是 确定“Scatter-Gather”是否是正确的方法,如果还有其他方法 可以适合请建议。
答案 0 :(得分:2)
我猜你必须向收集者提供关于如何按顺序组装字符串的提示。您没有提到订单是如何建立的:初始拆分是否可以定义订单或正则表达式处理是否定义订单。
在这两种情况下,您需要跟踪3件事: - 最初的来源, - 每件单品的顺序 - 总件数
您可以使用以下消息:
case class StringSegment(id:String, total:Int, seqNr:Int, payload:String)
散射体根据输入生成StringSegment
:
def scatter(s:String):List[StringSegment] ...
scatter(input).foreach(msg => processingActor ! msg)
并且收集者会将它们组合在一起,使用seqNr
知道顺序,total
知道所有部分何时出现。