Как безопасно остановить сторожевого наблюдателя?

Я пытаюсь найти способ безопасно остановить мой работающий обработчик событий сторожевого таймера. Моя функция получает параметр команды, если команда должна остановить наблюдателя события сторожевого таймера, то она должна остановить событие и слушателя, пока она благополучно завершит свою задачу, что означает, что я не хочу прерывать задачу.

Буду признателен, если вы предоставите поддержку по этому вопросу.

Спасибо.

UPDATE: 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()

Что вы думаете о моем подходе? Буду признателен, если вы знаете лучшее решение. Спасибо

0 ответов

Другие вопросы по тегам