From c3ea35806ef3c470af66f9dac8b10060bf5e5e90 Mon Sep 17 00:00:00 2001 From: Jonathan Wong Date: Tue, 17 Nov 2015 06:57:02 -0800 Subject: [PATCH] Move check for server down to check_active_sessions --- plexpy/__init__.py | 2 -- plexpy/activity_pinger.py | 34 ++++++++++++++-------------------- plexpy/notification_handler.py | 2 +- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/plexpy/__init__.py b/plexpy/__init__.py index 9e3e25c6..39c9a470 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -287,8 +287,6 @@ def initialize_scheduler(): hours=12, minutes=0, seconds=0) schedule_job(activity_pinger.check_recently_added, 'Check for recently added items', hours=0, minutes=0, seconds=seconds) - schedule_job(activity_pinger.check_server_response, 'Check for server response', - hours=0, minutes=0, seconds=seconds) # If we're not using websockets then fall back to polling if not CONFIG.MONITORING_USE_WEBSOCKET or POLLING_FAILOVER: diff --git a/plexpy/activity_pinger.py b/plexpy/activity_pinger.py index 9db9dd32..c1701769 100644 --- a/plexpy/activity_pinger.py +++ b/plexpy/activity_pinger.py @@ -163,6 +163,19 @@ def check_active_sessions(ws_request=False): monitor_process.write_session(session) else: logger.debug(u"PlexPy Monitor :: Unable to read session list.") + response = pms_connect.get_server_response() + global ping_count + + if not response: + ping_count += 1 + logger.warn(u"PlexPy Monitor :: Unable to get a response from the server, ping attempt %s." % str(ping_count)) + + if ping_count == 3: + # Fire off notifications + threading.Thread(target=notification_handler.notify_timeline, + kwargs=dict(notify_action='down')).start() + else: + ping_count = 0 def check_recently_added(): @@ -219,23 +232,4 @@ def check_recently_added(): # Fire off notifications threading.Thread(target=notification_handler.notify_timeline, - kwargs=dict(timeline_data=item, notify_action='created')).start() - - -def check_server_response(): - - with monitor_lock: - pms_connect = pmsconnect.PmsConnect() - response = pms_connect.get_server_response() - global ping_count - - if not response: - ping_count += 1 - logger.warn(u"PlexPy Monitor :: Unable to get a response from the server, ping attempt %s." % str(ping_count)) - - if ping_count == 3: - # Fire off notifications - threading.Thread(target=notification_handler.notify_timeline, - kwargs=dict(notify_action='down')).start() - else: - ping_count = 0 \ No newline at end of file + kwargs=dict(timeline_data=item, notify_action='created')).start() \ No newline at end of file diff --git a/plexpy/notification_handler.py b/plexpy/notification_handler.py index 5282bb3c..c9db601a 100644 --- a/plexpy/notification_handler.py +++ b/plexpy/notification_handler.py @@ -179,7 +179,7 @@ def notify_timeline(timeline_data=None, notify_action=None): body=notify_strings[1]) # Set the notification state in the db set_notify_state(session=timeline_data, state=notify_action, agent_info=agent) - elif notify_action == 'down': + elif not timeline_data and notify_action: for agent in notifiers.available_notification_agents(): if agent['on_down'] and notify_action == 'down': # Build and send notification