1

我正在尝试找到一种方法来安全地停止我正在运行的看门狗事件处理程序。我的函数正在获取一个命令参数,如果命令是停止看门狗事件观察者,那么只要它安全地完成其任务,它就应该停止事件和侦听器,这意味着我不想中断任务。

如果您在该问题上提供支持,我将不胜感激。

谢谢你。

更新:1

我尝试遵循库文档,我的实现如下:

observer.schedule(event_handler, this_cfg.inbound_folder_path)
observer.start()
print('Listening {} folder..........'.format(this_cfg.inbound_folder_path))
try:
   while True:           
        time.sleep(1)
except KeyboardInterrupt:
        observer.stop()
observer.join()

之后,我在观察者类中找到了一个属性,并将实现更改如下:

 observer.schedule(event_handler, this_cfg.inbound_folder_path)
 observer.start()
 print('Listening {} folder..........'.format(this_cfg.inbound_folder_path))
 try:
    while (observer.event_queue.unfinished_tasks != 0 and stop_signal!=True):
      time.sleep(1)
    observer.stop()
    observer.join()
  except KeyboardInterrupt:
    observer.stop()

你觉得我的方法怎么样?如果您知道更好的解决方案,我将不胜感激。谢谢

4

0 回答 0