我想运行一些看门狗代码。所以这里是例子:
import time
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler
from watchdog.events import FileSystemEventHandler
class FileDispatcherTask (FileSystemEventHandler):
def __init__ (self, src, dest, queue):
self._src = src
self._dest = dest
self._queue = queue;
def dispatch (self, file):
info = JobInfo(file)
self._queue.addJob(info)
def on_created (self, event):
print ("File was created")
print (event)
async def run (self):
observer = Observer()
observer.schedule(self, self._src, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
finally:
observer.stop()
observer.join()
代码应该作为任务运行,其中观察者在 run 方法中设置。 Schedule 方法似乎不适用于 self,因为没有关于创建文件的输出。我会编写一个单独的类来监听事件吗,它会按预期工作。我缺少什么? self 关键字不是像 Java 中的 this 关键字吗?
好的, 我通常用静态类型语言编写代码,所以我犯了一个错误,我不小心覆盖了 FileSystemEventHandler dispatch(event) 的调度方法。更改方法名称,一切正常。