/ blottertrax / daemons / modmail_daemon.py
modmail_daemon.py
 1  import time
 2  from multiprocessing import Lock
 3  
 4  from blottertrax.applications.modmail import ModMail
 5  from blottertrax.logger import Logger
 6  
 7  
 8  class ModMailDaemon:
 9      crash_timeout: int = 10
10  
11      def __init__(self):
12          self.logger = Logger()
13  
14      def start(self, lock: Lock):
15          try:
16              self.logger.info('Starting ModMailDaemon daemon')
17  
18              ModMail(lock).run()
19          except Exception:
20              self.logger.exception('ModMailDaemon threw exception')
21  
22              time.sleep(self.crash_timeout)
23  
24          self.start(lock)