cc-1799 : Filesystem

running Notifier as a daemon, allows parallel processing of event queue at all times.
This commit is contained in:
Naomi Aro 2011-06-28 11:39:54 +02:00
parent 8b533bbd21
commit 4c8e6a04ac
4 changed files with 48 additions and 67 deletions

View file

@ -22,56 +22,48 @@ def handleSigTERM(signum, frame):
sys.exit(0)
if __name__ == '__main__':
# configure logging
try:
logging.config.fileConfig("logging.cfg")
except Exception, e:
print 'Error configuring logging: ', e
sys.exit()
# configure logging
try:
logging.config.fileConfig("logging.cfg")
except Exception, e:
print 'Error configuring logging: ', e
sys.exit()
logger = logging.getLogger()
p = None
logger = logging.getLogger()
p = None
try:
config = AirtimeMediaConfig()
logger.info("Initializing event processor")
pe = AirtimeProcessEvent(airtime_config=config)
try:
config = AirtimeMediaConfig()
logger.info("Initializing event processor")
pe = AirtimeProcessEvent(airtime_config=config)
notifier = AirtimeNotifier(pe.wm, pe, read_freq=1, timeout=1, airtime_config=config)
notifier.coalesce_events()
notifier = AirtimeNotifier(pe.wm, pe, read_freq=1, timeout=1, airtime_config=config)
notifier.coalesce_events()
p = Process(target=notifier.process_file_events, args=(pe.file_events,))
p.start()
p = Process(target=notifier.process_file_events, args=(pe.file_events,))
p.daemon = True
p.start()
signal.signal(signal.SIGTERM, handleSigTERM)
signal.signal(signal.SIGTERM, handleSigTERM)
logger.info("Setting up monitor")
response = None
while response is None:
response = notifier.api_client.setup_media_monitor()
time.sleep(5)
logger.info("Setting up monitor")
response = None
while response is None:
response = notifier.api_client.setup_media_monitor()
time.sleep(5)
storage_directory = response["stor"].encode('utf-8')
logger.info("Storage Directory is: %s", storage_directory)
config.storage_directory = storage_directory
storage_directory = response["stor"].encode('utf-8')
logger.info("Storage Directory is: %s", storage_directory)
config.storage_directory = storage_directory
wdd = pe.watch_directory(storage_directory)
logger.info("Added watch to %s", storage_directory)
logger.info("wdd result %s", wdd[storage_directory])
wdd = pe.watch_directory(storage_directory)
logger.info("Added watch to %s", storage_directory)
logger.info("wdd result %s", wdd[storage_directory])
#notifier.loop(callback=mm.notifier_loop_callback)
notifier.loop(daemonize=True, callback=pe.notifier_loop_callback, pid_file='/var/run/airtime-notifier.pid', stdout='/var/log/airtime/media-monitor/media-monitor.log')
while True:
if(notifier.check_events(1)):
notifier.read_events()
notifier.process_events()
pe.notifier_loop_callback(notifier)
except KeyboardInterrupt:
notifier.stop()
except Exception, e:
notifier.stop()
logger.error('Exception: %s', e)
except KeyboardInterrupt:
notifier.stop()
except Exception, e:
logger.error('Exception: %s', e)