Я пытаюсь иметь поток мониторинга в robotframework для непрерывного мониторинга сигнала и принудительного отключения при считывании определенного сигнала. У меня есть следующий код.RobotFramework Monitoring Thread to Trigger Teardown
import signal
from datetime import datetime
from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn
import logging
import thread
import os
import sys
import time
def do_error_log_monitoring_new():
def _monitor_log():
time.sleep(5)
# Monitor_Some_Signal
builtin_lib.fatal_error(msg='Force Teardown')
thread_logger = logging.getLogger('root')
thread_logger.info("Started Fault Listener")
builtin_lib = BuiltIn().get_library_instance('BuiltIn', all=True)
thread.start_new_thread(_monitor_log,())
builtin_lib = BuiltIn().get_library_instance('BuiltIn', all=True)
У меня есть с all=True
аргументом для возврата словаря отображения всех имен библиотек в случаи. Однако я вижу следующее сообщение об ошибке:
AttributeError: «ДИКТА» объект не имеет атрибута «fatal_error»
Кроме того, удаление all=True
аргумента позволяет функции, чтобы пройти и fatal_error, чтобы вызвать, однако я заметил, что он делает не запускать разрывы в основном потоке, что я и намерен делать. Любые советы о том, как я могу вызвать разрыв в основном потоке из функции fatal_error()
во вторичном потоке?
Я пытался это сделать раньше, но я по-прежнему не могу заставить срывать основную нить. Fatal_error во втором потоке, похоже, не приводит к отрыву в основном потоке. – Drake