From cfe71196c5cad6e0df3e8d3c94789b096ce312a4 Mon Sep 17 00:00:00 2001 From: Stephen Diehl Date: Thu, 26 Apr 2012 14:45:28 -0400 Subject: [PATCH] Fail on timeouts & timeout handlers. --- zipline/monitor.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/zipline/monitor.py b/zipline/monitor.py index 915043b4..3f4af9fc 100644 --- a/zipline/monitor.py +++ b/zipline/monitor.py @@ -409,10 +409,27 @@ class Controller(object): # a very bad failure mode. raise UnknownChatter(component) + # ------------------ + # Epic Fail Handling + # ------------------ + + def universal(self): + self.logging.error('[Controller] System in exception state, shutting down') + self.terminate(soft=True) def fail(self, component): - self.logging.info('[Controller] Component "%s" timed out' % component) - self.tracked.remove(component) + universal = self.fail_universal + fail_handlers = { + } + + if component in self.topology or self.freeform: + self.logging.info('[Controller] Component "%s" timed out' % component) + self.tracked.remove(component) + fail_handlers.get(component, universal)() + + # ------------------- + # Completion Handling + # ------------------- def done(self, component): self.logging.info('[Controller] Component "%s" done.' % component)