Add http get request to logger thread for passive monitoring
This closes #1
This commit is contained in:
parent
cb914671d2
commit
6cf37aebb2
1 changed files with 12 additions and 2 deletions
|
@ -4,6 +4,7 @@ import logging
|
||||||
import signal
|
import signal
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
from requests.exceptions import ConnectionError
|
||||||
from multiprocessing import Process, Event, Queue
|
from multiprocessing import Process, Event, Queue
|
||||||
from logging.handlers import QueueHandler
|
from logging.handlers import QueueHandler
|
||||||
from imapclient import IMAPClient, exceptions
|
from imapclient import IMAPClient, exceptions
|
||||||
|
@ -137,7 +138,7 @@ class MailboxNotifier(object):
|
||||||
def shutdown_handler(signal, frame):
|
def shutdown_handler(signal, frame):
|
||||||
_shtudown.set()
|
_shtudown.set()
|
||||||
|
|
||||||
def logger_thread(log_queue):
|
def logger_thread(log_queue, url):
|
||||||
logging.debug("starting logger thread")
|
logging.debug("starting logger thread")
|
||||||
while True:
|
while True:
|
||||||
entry = log_queue.get()
|
entry = log_queue.get()
|
||||||
|
@ -146,6 +147,12 @@ def logger_thread(log_queue):
|
||||||
break
|
break
|
||||||
logger = logging.getLogger(entry.name)
|
logger = logging.getLogger(entry.name)
|
||||||
logger.handle(entry)
|
logger.handle(entry)
|
||||||
|
if url is not None:
|
||||||
|
try:
|
||||||
|
r = requests.get(url)
|
||||||
|
|
||||||
|
except ConnectionError:
|
||||||
|
pass
|
||||||
|
|
||||||
def event_thread(event_queue):
|
def event_thread(event_queue):
|
||||||
logging.debug("starting event thread")
|
logging.debug("starting event thread")
|
||||||
|
@ -177,6 +184,8 @@ def main():
|
||||||
db.init(args.store, pragmas={'journal_mode': 'wal'})
|
db.init(args.store, pragmas={'journal_mode': 'wal'})
|
||||||
create_tables()
|
create_tables()
|
||||||
|
|
||||||
|
monitor_url = System.get_or_none(System.key == "monitor_url")
|
||||||
|
|
||||||
log_queue = Queue()
|
log_queue = Queue()
|
||||||
event_queue = Queue()
|
event_queue = Queue()
|
||||||
processes = []
|
processes = []
|
||||||
|
@ -191,7 +200,8 @@ def main():
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
logging.debug("starting up main")
|
logging.debug("starting up main")
|
||||||
log_thread = threading.Thread(target=logger_thread, args=(log_queue,))
|
log_thread = threading.Thread(target=logger_thread,
|
||||||
|
args=(log_queue,monitor_url.value,))
|
||||||
log_thread.start()
|
log_thread.start()
|
||||||
e_thread = threading.Thread(target=event_thread, args=(event_queue,))
|
e_thread = threading.Thread(target=event_thread, args=(event_queue,))
|
||||||
e_thread.start()
|
e_thread.start()
|
||||||
|
|
Loading…
Reference in a new issue