Make it keeping reconnecting forever.
[zanchey/dispense2.git] / sql-edition / servers / VendServer.py
index cea3cfa..8017d3a 100755 (executable)
@@ -8,10 +8,12 @@ if USE_DB: import pg
 from time import time, sleep
 from popen2 import popen2
 from LATClient import LATClient
-from VendingMachine import VendingMachine
+from VendingMachine import VendingMachine, VendingException
 from HorizScroll import HorizScroll
 from random import random, seed
 from Idler import TrainIdler,GrayIdler
+import socket
+from traceback import print_tb
 
 GREETING = 'UCC SNACKS'
 PIN_LENGTH = 4
@@ -406,7 +408,16 @@ if __name__ == '__main__':
        PrivPassword = cp.get('DecServer', 'PrivPassword')
 
        while True:
+               try:
                rfh, wfh = connect_to_vend(options, DBServer, DBName, DBUser, DBPassword, ServiceName, ServicePassword, ServerName, ConnectPassword, PrivPassword)
+               except Exception:
+                       (exc_type, exc_value, exc_traceback) = sys.exc_info()
+                       print "Connection error ("+str(exc_type)+"):"
+                       print_tb(exc_traceback)
+                       del exc_traceback
+                       print "Trying again in 5 seconds."
+                       sleep(5)
+                       continue
                try:
                        run_forever(rfh, wfh)
                except VendingException:

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