为了不阻塞反应器,我想异步读取文件,但我没有发现使用 EventMachine 的明显方法。我尝试了几种不同的方法,但没有一种感觉是对的:
- 只是读取文件,它会阻塞反应器,但到底是什么,它并没有那么慢(除非它是一个大文件,然后它肯定是)。
- 打开文件进行读取并在每个刻度上读取一个块(但是要读取多少?太多会阻塞反应器,太少并且读取会比必要的慢)。
EM.popen('cat some/file', FileReader)
感觉真的很奇怪,但比上面的替代品效果更好。结合LineAndTextProtocol
它,它可以非常迅速地读取行。EM.attach
,但我还没有找到任何如何使用它的示例,我在邮件列表中发现的唯一内容是它已被弃用,取而代之的是......</li>EM.watch
,我没有找到如何用于读取文件的示例。
您如何在 EventMachine 反应器循环中读取文件?