在python inotify中没有引发IN_Q_OVERFLOW事件

时间:2016-03-15 19:43:05

标签: python inotify

当相应的事件队列已满时,如果引发观察者队列事件,则inotify系统会明显引发IN_Q_OVERFLOW事件。我使用inotify python包来注册inotify事件。我有兴趣知道何时引发IN_Q_OVERFLOW事件,但看起来inotify包完全忽略了这个事件。有没有人对如何通过inotify或其他提供此行为的python包注册此事件有任何建议?

来自inotify adapter.py的片段

def __handle_inotify_event(self, wd, event_type):
    """Handle a series of events coming-in from inotify."""

        ....
        if path is None:
            break #if i print header.mask i clearly see 16384 or 0x00004000 the IN_Q_OVERFLOW bit
        yield (header, type_names, path, filename)

代码

2 个答案:

答案 0 :(得分:0)

解决方案 - pyinotify!添加字符以达到30 ...

答案 1 :(得分:0)

你可能想试试守望者: https://facebook.github.io/watchman/

有一个python客户端,但没有太多关于从Python使用它的文档。我建议看一下watchman-wait和watchman-make tools的实现

Watchman与大多数文件观看系统的工作方式略有不同,因为它保持了您正在观看的目录树的一致视图。它将在内部处理溢出事件并传递有关它们的信息。默认情况下,它只会告诉您所有文件可能已更改,因此您无需更改应用程序逻辑,除非您关心发现在溢出事件期间删​​除的文件。

免责声明:我创建并维护了守望者