错误地将'ansible_user'设置为MFA用户,tqm将无限期挂起。我在“ task_queue_manager.py”中设置了一个断点:
play_return = strategy.run(iterator, play_context)
但是我找不到任何可用于停止,结束或出错的程序。下面是sudo代码,代表对其工作方式的猜测。
timeout = 300
result = tqm.run(play)
if not result and timeout and tqm is not None:
tqm.cleanup()
没有人知道直接使用tqm的解决方案,甚至像我上面所没有的解决方法吗?
我通过使用func_timeout库找到了解决此问题的方法。将tqm.run包装在try块中,并将其发送到超时fcn中,这对我来说很有效。
try:
exitstatus = func_timeout(self.tqm_timeout, tqm.run, args=(play,))
except FunctionTimedOut:
msg = "tqm.run could not complete within {} seconds and was terminated.".format(self.tqm_timeout)
raise Exception(msg)
except Exception as e:
raise Exception('exception in tqm was {}'.format(e))