协调Akka的批处理
我需要在Akka一个接一个地批处理2个大文件,我正试图找出在控制角色中协调这些文件的最佳方法。可以并行处理每个文件中的行,但必须先处理第一个文件中的所有行,然后才能处理第二个文件中的任何行 我在考虑有以下演员:协调Akka的批处理,akka,batch-processing,Akka,Batch Processing,我需要在Akka一个接一个地批处理2个大文件,我正试图找出在控制角色中协调这些文件的最佳方法。可以并行处理每个文件中的行,但必须先处理第一个文件中的所有行,然后才能处理第二个文件中的任何行 我在考虑有以下演员: File1WorkerActor—处理第一个文件中的一行 File2WorkerActor—处理第二个文件中的一行 File1Actor—将第一个文件中的行委托给多个辅助角色 File2Actor—将第二个文件中的行委托给多个辅助角色 TopLevelActor—要求File1Acto
- File1WorkerActor—处理第一个文件中的一行李>
- File2WorkerActor—处理第二个文件中的一行李>
- File1Actor—将第一个文件中的行委托给多个辅助角色李>
- File2Actor—将第二个文件中的行委托给多个辅助角色李>
- TopLevelActor—要求File1Actor处理文件1,等待其完成,然后要求File2Actor处理文件2
我认为FileActor只需为给定文件中的行数保留一个计数器,工作人员就会为每个处理过的行返回一条消息。计数器倒计时后,它将向TopLevelActor发送一条消息。这种方法有什么问题吗?还是最好在将来实施某种处理方式?我觉得您的解决方案很正确。另外,您可能会对检查FSM和/或成为/取消角色功能感兴趣,以避免在上一个任务未完成时向工作人员提交另一个任务听起来您想实现异步fork join:我最终使用Derek Wyatt在本博文中描述的工作拉动模式实现了这一点: