def run(): # Instantiate Controller and EventStore mailer = Mailer(MAIL_BACKOFF_TIMEOUT_IN_SEC, SMTP_ADDRESS, SMTP_USERNAME, SMTP_PASSWORD, FROM_ADDRESS, TO_ADDRESS) sms_sender = SmsSender(SMS_BACKOFF_TIMEOUT_IN_SEC, SMS_API_KEY, FROM_NUMBER, TO_NUMBER) event_store = EventStore() event_controller = EventController( event_store, event_heartbeat_in_sec=HEARTBEAT_INTERVAL_SEC, mailer=mailer, sms_sender=sms_sender) log.info('Starting Monitor site on port %s...', MONITOR_PORT) httpd = ThreadedMonitorServer((MONITOR_HOST, MONITOR_PORT), MonitorRequestHandler, event_controller, mailer, sms_sender) _run_threaded(httpd) log.info('Starting Alarm Server on port %s...', ALARM_PORT) alarm_server = ThreadedTCPServer( (ALARM_HOST, ALARM_PORT), AlarmNotificationHandler, event_controller) _run_threaded(alarm_server) event_controller.start() try: while True: time.sleep(60) except KeyboardInterrupt: log.info('Ctrl-c pressed, exiting ...') alarm_server.shutdown() httpd.shutdown() event_store.close()
def run(): # Instantiate Controller and EventStore mailer = Mailer(MAIL_BACKOFF_TIMEOUT_IN_SEC, SMTP_ADDRESS, SMTP_USERNAME, SMTP_PASSWORD, FROM_ADDRESS, TO_ADDRESS) sms_sender = SmsSender(SMS_BACKOFF_TIMEOUT_IN_SEC, SMS_API_KEY, FROM_NUMBER, TO_NUMBER) event_store = EventStore() event_controller = EventController(event_store, event_heartbeat_in_sec=HEARTBEAT_INTERVAL_SEC, mailer=mailer, sms_sender=sms_sender) log.info('Starting Monitor site on port %s...', MONITOR_PORT) httpd = ThreadedMonitorServer((MONITOR_HOST, MONITOR_PORT), MonitorRequestHandler, event_controller, mailer, sms_sender) _run_threaded(httpd) log.info('Starting Alarm Server on port %s...', ALARM_PORT) alarm_server = ThreadedTCPServer((ALARM_HOST, ALARM_PORT), AlarmNotificationHandler, event_controller) _run_threaded(alarm_server) event_controller.start() try: while True: time.sleep(60) except KeyboardInterrupt: log.info('Ctrl-c pressed, exiting ...') alarm_server.shutdown() httpd.shutdown() event_store.close()
def run(): # Instantiate Controller and EventStore event_store = EventStore() event_controller = EventController(event_store, EVENT_HEARTBEAT_IN_SEC) log.info('Starting Server...') # Create the server, binding to HOST on PORT server = ThreadedTCPServer((HOST, PORT), AlarmNotificationHandler, event_controller) # Start a thread with the server -- that thread will then start one # more thread for each request server_thread = threading.Thread(target=server.serve_forever) # Exit the server thread when the main thread terminates server_thread.daemon = True server_thread.start() log.info('Server loop running in thread: %s', server_thread.name) event_controller.start() try: while True: time.sleep(60) except KeyboardInterrupt: log.info('Ctrl-c pressed, exiting ...') server.shutdown() event_store.close()