proper logging, add signal handler for graceful termination
This commit is contained in:
17
feeder.py
17
feeder.py
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
import signal
|
||||
import logging
|
||||
from os.path import expanduser
|
||||
sys.path.append(expanduser('~'))
|
||||
import socket
|
||||
@@ -20,6 +22,9 @@ Usage:
|
||||
python feeder.py uri [device] [instrument]
|
||||
"""
|
||||
|
||||
logging.basicConfig(filename='logfile.log', filemode='w', level=logging.INFO,
|
||||
format='%(asctime)s %(levelname)s %(message)s')
|
||||
|
||||
|
||||
def main(dbname=None, access='write'):
|
||||
# egen = EventStream(ScanReply(), ScanStream(), n=NicosStream('localhost:14002'))
|
||||
@@ -42,14 +47,21 @@ def main(dbname=None, access='write'):
|
||||
port = fm.info.get(ins, {}).get(service, {})
|
||||
if port:
|
||||
uri = f'{host}:{port}'
|
||||
print('CREATE', uri, ins, cfginfo.get((ins, service)))
|
||||
logging.info('CREATE %s %s %s', uri, ins, cfginfo.get((ins, service)))
|
||||
TrySecopConnect(uri)
|
||||
db.set_instrument(uri, ins)
|
||||
|
||||
event_map = {'value': db.add_float, 'error': db.add_error, 'stream': db.add_stream}
|
||||
|
||||
running = [True]
|
||||
|
||||
def handler(self, num, frame):
|
||||
running.clear()
|
||||
|
||||
signal.signal(signal.SIGTERM, handler)
|
||||
|
||||
try:
|
||||
while 1:
|
||||
while running:
|
||||
for kind, *args in egen.get_events():
|
||||
event_map[kind](*args)
|
||||
db.flush()
|
||||
@@ -57,6 +69,7 @@ def main(dbname=None, access='write'):
|
||||
for kind, *args in egen.finish():
|
||||
event_map[kind](*args)
|
||||
db.disconnect()
|
||||
logging.info('gracefully finished')
|
||||
|
||||
|
||||
if len(sys.argv) >= 3:
|
||||
|
||||
Reference in New Issue
Block a user