如何通过远程FileSystem进行非阻塞读/写

时间:2009-11-05 18:16:57

标签: python networking filesystems twisted

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

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

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

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