【问题标题】:Akka scatter-gather for string processing用于字符串处理的 Akka scatter-gather
【发布时间】:2013-09-19 08:55:37
【问题描述】:

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

【问题讨论】:

  • 顺序是如何定义的?它是基于响应返回的顺序还是静态的,因此无论参与者响应的顺序如何,它都应该始终相同?
  • 它是静态的,无论演员响应的顺序如何,都应该始终相同
  • 你能否提供更多细节,也许是一个关于如何定义排序的简短代码示例?

标签: java scala akka scatter akka-cluster


【解决方案1】:

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

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

您可以使用如下消息:

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

散射器根据输入产生StringSegments:

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

然后收集者将它们组装在一起,使用seqNr 知道顺序,使用total 知道所有碎片何时出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2020-05-07
    • 2022-07-22
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2018-12-27
    相关资源
    最近更新 更多