У меня проблема с некоторыми из моих рабочих потоков. Я добавил оператор исключения catchall в метод запуска потока следующим образом:
try:
"""Runs the worker process, which is a state machine"""
while self._set_exitcode is None :
assert self._state in Worker.STATES
state_methodname = "_state_%s" % self._state
assert hasattr(self, state_methodname)
state_method = getattr(self, state_methodname)
self._state = state_method() # execute method for current state
self._stop_heartbeat()
sys.exit( self._set_exitcode )
except:
self.log.debug(sys.exc_info())
Я читал, что это де-факто способ уловить все, что может вызвать проблему, вместо использования Exception, e
. Благодаря этому методу я нашел несколько замечательных маленьких ошибок, но моя проблема в том, что рабочие все еще умирают, и я не знаю, как дальше записывать происходящее или устранять неполадки.
Мы будем очень признательны за любые мысли.
Спасибо!
, e
в конце предложения, когда впервые прочитал его. - person Jon Cage   schedule 04.05.2011