2009-11-05 65 views
5

有沒有一種方式來寫或讀文件在遠程文件系統(如NFS,SSHFS或sambafs) 以讀或寫或甚至打開的方式立即返回錯誤代碼? 事實上,我正在使用Twisted,我想知道是否有一種安全的方式來訪問遠程文件而不會阻塞我的反應器。如何不阻止讀/寫遠程文件系統

回答

7

在扭曲,對於遠程文件系統,就像任何其他的阻塞調用,您可以使用threads.deferToThread - 一個合理的優雅的方式來對付討厭的阻塞系統調用 - !)

1

這其實是非常相似,我的問題問here。看來,解決目前操作系統限制的唯一方法是使用線程或外部進程爲您處理文件IO。在以前的生活中(非python或扭曲,但非常異步),我們最終將文件IO抽象爲一個單獨的守護進程,該守護進程本質上是我們的「文件系統工作者」。

2.6.x版本的linux似乎已經在內核級別增加了對異步IO的更多支持,其中libaio是對它的支持,但它看起來相當神祕而且在它實際支持的方面頗爲可疑。

+0

不幸的是AIO的狀態並不好:http://stackoverflow.com/questions/87892/what-is-the-status-of-posix-asynchronous-io-aio(問題中的第一個鏈接是特別感興趣的) – 2009-11-12 12:44:51