我正在使用pyinotify(process_IN_MOVED事件)来监视目录中出现的文件.当出现新文件时,将触发此事件并以某种方式处理该文件.问题是,有时文件出现在目录中的速度比我处理它们的速度快,这意味着一堆文件将无法处理.我可以只有一个函数睡眠十秒然后醒来找到新的文件或东西,但我真的想坚持基于事件的解决方案,如果可能的话.有没有办法做到这一点?
解决方法:
通常我会在这里实现一个线程池来处理处理,而事件观察者只是在观察事件并将它们传递给池.
粗略的例子:
(event happens) ->
Watcher registers the event ->
puts it into the thread pool queue ->
thread pool processes the event
这样,观察者将在等待部分之外花费最少的时间,从而大大减少错过更新的机会.