5

有没有办法在远程文件系统(例如 NFS、SSHFS 或 sambafs)上以读取或写入甚至打开返回错误代码的方式写入和读取文件?事实上,我正在使用 Twisted,我想知道是否有一种安全的方法可以访问远程文件而不会阻塞我的反应器。

4

2 回答 2

7

在 Twisted 中,对于远程文件系统,就像任何其他阻塞调用一样,您可以使用threads.deferToThread——一种相当优雅的方式来处理讨厌的阻塞系统调用!-)

于 2009-11-05T18:40:50.043 回答
1

这实际上与我在这里提出的问题非常相似。目前看来,绕过操作系统限制的唯一方法是使用线程或外部进程为您处理文件 IO。

在以前的生活中(非 python 或扭曲,但非常异步),我们最终将文件 IO 抽象到一个单独的守护进程中,该守护进程本质上是我们的“文件系统工作者”。

linux 的 2.6.x 版本似乎在内核级别增加了对异步 IO 的更多支持,其中libaio是对它的支持,但它看起来很神秘,而且它实际支持的内容相当可疑。

于 2009-11-12T09:12:37.127 回答