python - 文件出现在目录中的速度比我处理它们的速度快(pyinotify)

标签 python inotify

我正在使用 pyinotify(process_IN_MOVED 事件)来监视目录中出现的文件。当出现新文件时,会触发该事件,并对文件进行某种处理。问题是有时文件出现在目录中的速度比我处理它们的速度快,这意味着一堆文件不会得到处理。我可以只拥有一个休眠十秒钟然后醒来寻找新文件或其他东西的功能,但如果可能的话我真的想坚持使用基于事件的解决方案。有办法做到这一点吗?

最佳答案

一般来说,我会在这里实现一个线程池来处理处理,而事件观察者只会观察事件并将它们传递到池中。 粗略的例子:

(event happens) -> 
Watcher registers the event -> 
puts it into the thread pool queue -> 
thread pool processes the event

这样观察者将在等待部分之外花费最少的时间,从而大大减少错过更新的机会。

关于python - 文件出现在目录中的速度比我处理它们的速度快(pyinotify),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11675852/

相关文章:

python - vim 中按名称对函数进行排序

python - Python中组的反向正则表达式匹配

python - 使用 pytest.raises 捕获预期的自定义错误

python - Uwsgi 失败并返回 : Py_Initialize: Unable to get the locale encoding

python - Google App Engine Python 中使用区域设置的货币格式

c - 是否有任何 POSIX 函数或 glibc 扩展实现了广度优先文件树遍历?

linux - 添加 node_modules 时出现 EMFILE 错误/即使有高限制

inotify_add_watch 到/proc文件夹

email - 如果修改了文件夹,如何发送电子邮件警报

c++ - 使用 INotify 监视具有多个符号链接(symbolic link)的文件