我正在使用twsited的INotify監視/ dev目錄以監視新添加的串行設備。我目前使用的代碼與下面類似。python twisted INotify without blocking reactor
notifier = INotify()
notifier.watch(FilePath("/dev"), IN_CREATE, callbacks=[self.created])
notifier.startReading()
def created(self, ignored, path, mask):
...
blocking code
...
我目前遇到的問題是,當「創建」獲取調用,它擋住了我的反應器,以便其他網絡會話(我有TCP和用相同的反應器相關的UDP連接),必須等待爲'創建'方法完成。
有誰知道我如何使'創建'的方法在後臺運行,所以它不會阻止我的反應堆?
感謝,
西蒙
感謝您的幫助和詳細的答案。我花了一些時間探索你提到的不同選項,而deferToThread選項似乎對我來說很好。不過你提到的一些看起來很有趣的事情是,你建議「使用Twisted的非阻塞套接字I/O API」。你能指出我在哪裏記錄這些嗎?再次感謝你的幫助。 – Simon 2011-06-15 10:01:07
只是詳細的答案像我這樣一個新的扭曲的入門者需要。非常感謝! – egbutter 2011-12-18 22:18:41
有關Twisted的非阻塞網絡I/O API的介紹,請參閱http://twistedmatrix.com/documents/current/core/howto/servers.html和http://twistedmatrix.com/documents/current/core/ HOWTO/clients.html – Glyph 2012-10-19 06:44:06