商业逻辑
我们有以下业务逻辑要完成:
100 万次:
- 下载索引 i 中的文件
- 解压文件
- 从文件中提取一些信息
- 删除文件
当前的 Akka 解决方案
我们目前拥有的 Akka 解决方案创建了 100 万个演员,他们负责下载一个文件,一旦完成,他们就会创建一个演员来处理步骤 2、3、4。
问题
运行该过程后,我们遇到了 Akka 将下载 actor 置于最高优先级的情况,而其余的 actor 则处于饥饿模式。
我们知道,由于下载actor不断下载,机器磁盘已满,但其他actor没有机会扫描和删除文件。
问题
- 有没有办法强制 Akka 不要让演员链中的演员挨饿?
- 有没有办法告诉下载参与者等到它收到可以继续的通知(例如,磁盘中不超过并行 1000 个文件)
谢谢。