コード例 #1
0
ファイル: server.py プロジェクト: jaco1982/AlarmListener
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()
コード例 #2
0
ファイル: server.py プロジェクト: mdonkers/AlarmListener
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()
コード例 #3
0
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()