我正在尝试使用 Akka 实现以下场景,但遇到堆限制(内存不足错误):
用户上传一个包含大约 1000000 行的文本文件(大约 25mb)。
文件上传后,HTTP 200 OK 将发送回客户端,文件处理将在后台开始。
应处理每一行(保存到数据库,如果查找返回一些结果,则应调用外部 Web 服务来查找该行的内容并更新数据库。)
请提出方法/模式。
非常感谢!
最佳答案
有多种方法可以实现此目的,例如:
1) 使用bounded mailbox对于您的某些参与者,如果目标邮箱已满,则向此类参与者发送消息的代码将被阻止;
2) 使用work pulling model当你的一些 Actor 在空闲时“要求”更多工作时。
关于scala - Akka消息限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21776122/