reduce update rate on error
[uccdoor.git] / server.py
index 69a0d7e..11fe9de 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -31,8 +31,8 @@ def check_LAT_service(servicename, retries=3):
             wfh.flush()
         except:
             results['error'] -= 1
-            if results['error'] == 0: return -1
             syslog.syslog(142, "c_L_s write error:" + servicename)
+            if results['error'] == 0: return -1
             continue
         syslog.syslog(142, "c_Ls written data to " + servicename)
         rr, wr, er = select([rfh], [], [], 3.0)
@@ -80,10 +80,14 @@ class Door(dbus.service.Object):
         except:
             newstatus = -1
         
+        syslog.syslog(142, "status, newstatus for %s is %i, %i" % (self.service, self.status, newstatus))
         if newstatus != self.status:
+            syslog.syslog(142, "status changed detected for  %s" % self.service)
             self.status = newstatus
             # emit signal
             self.status_changed(newstatus)
+            # back off if broken
+            self.interval = [10,10,20][newstatus]
         
         # set up timeout again
         self.timeout = Timer(self.interval, self.poll)

UCC git Repository :: git.ucc.asn.au