def inactive_cleanup(exit_event): while True: exit_event.wait(60.0) if exit_event.is_set(): try: all_sessions = OpenOPC.get_sessions(host=opc_gate_host, port=opc_gate_port) for server, oid, ctime, xtime in all_sessions: OpenOPC.close_session(oid, host=opc_gate_host, port=opc_gate_port) except Exception as e: servicemanager.LogInfoMsg('\n\nException %s happen when stop opc gateway service' % e) finally: exit_event.clear() return else: try: all_sessions = OpenOPC.get_sessions(host=opc_gate_host, port=opc_gate_port) if len(all_sessions) > max_clients: stale_sessions = sorted(all_sessions, key=lambda s: s[3])[:-max_clients] else: stale_sessions = [s for s in all_sessions if time.time() - s[3] > (inactive_timeout * 60)] for server, oid, ctime, xtime in stale_sessions: OpenOPC.close_session(oid, host=opc_gate_host, port=opc_gate_port) time.sleep(1) except Exception as e: servicemanager.LogInfoMsg('\n\nException %s happen when cleanup timeout session' % e)
def inactive_cleanup(exit_event): while True: exit_event.wait(60.0) if exit_event.is_set(): all_sessions = OpenOPC.get_sessions(host=opc_gate_host, port=opc_gate_port) for oid, ip, ctime, xtime in all_sessions: OpenOPC.close_session(oid, host=opc_gate_host, port=opc_gate_port) exit_event.clear() return else: try: all_sessions = OpenOPC.get_sessions(host=opc_gate_host, port=opc_gate_port) except Pyro.errors.ProtocolError: all_sessions = [] if len(all_sessions) > max_clients: stale_sessions = sorted(all_sessions, key=lambda s: s[3])[:-max_clients] else: stale_sessions = [ s for s in all_sessions if time.time() - s[3] > (inactive_timeout * 60) ] for oid, ip, ctime, xtime in stale_sessions: OpenOPC.close_session(oid, host=opc_gate_host, port=opc_gate_port) time.sleep(1)
def inactive_cleanup(exit_event): while True: exit_event.wait(60.0) if exit_event.is_set(): all_sessions = OpenOPC.get_sessions(host=opc_gate_host, port=opc_gate_port) for oid, ip, ctime, xtime in all_sessions: OpenOPC.close_session(oid, host=opc_gate_host, port=opc_gate_port) exit_event.clear() return else: try: all_sessions = OpenOPC.get_sessions(host=opc_gate_host, port=opc_gate_port) except Pyro.errors.ProtocolError: all_sessions = [] if len(all_sessions) > max_clients: stale_sessions = sorted(all_sessions, key=lambda s: s[3])[:-max_clients] else: stale_sessions = [s for s in all_sessions if time.time()-s[3] > (inactive_timeout*60)] for oid, ip, ctime, xtime in stale_sessions: OpenOPC.close_session(oid, host=opc_gate_host, port=opc_gate_port) time.sleep(1)
# Establish signal handler for keyboard interrupts sh = SigHandler() signal.signal(signal.SIGINT, sh) if os.name == 'nt': signal.signal(signal.SIGBREAK, sh) signal.signal(signal.SIGTERM, sh) # ACTION: List active sessions in OpenOPC service if action == 'sessions': print ' %-38s %-18s %-18s' % ('Remote Client', 'Start Time', 'Last Transaction') try: for guid, host, init_time, tx_time in OpenOPC.get_sessions( open_host, open_port): print ' %-38s %-18s %-18s' % (host, time2str(init_time), time2str(tx_time)) except: error_msg = sys.exc_info()[1] print "Cannot connect to OpenOPC service at %s:%s - %s" % ( open_host, open_port, error_msg) exit() # Connect to OpenOPC service (Open mode) if opc_mode == 'open': try: opc = OpenOPC.open_client(open_host, open_port) except: error_msg = sys.exc_info()[1]
health_only = False # Establish signal handler for keyboard interrupts sh = SigHandler() signal.signal(signal.SIGINT,sh) if os.name == 'nt': signal.signal(signal.SIGBREAK,sh) signal.signal(signal.SIGTERM,sh) # ACTION: List active sessions in OpenOPC service if action == 'sessions': print ' %-38s %-18s %-18s' % ('Remote Client', 'Start Time', 'Last Transaction') try: for guid, host, init_time, tx_time in OpenOPC.get_sessions(open_host, open_port): print ' %-38s %-18s %-18s' % (host, time2str(init_time), time2str(tx_time)) except: error_msg = sys.exc_info()[1] print "Cannot connect to OpenOPC service at %s:%s - %s" % (open_host, open_port, error_msg) exit() # Connect to OpenOPC service (Open mode) if opc_mode == 'open': try: opc = OpenOPC.open_client(open_host, open_port) except: error_msg = sys.exc_info()[1] print "Cannot connect to OpenOPC Gateway Service at %s:%s - %s" % (open_host, open_port, error_msg) exit()
# Establish signal handler for keyboard interrupts sh = SigHandler() signal.signal(signal.SIGINT, sh) if os.name == 'nt': signal.signal(signal.SIGBREAK, sh) signal.signal(signal.SIGTERM, sh) # ACTION: List active sessions in OpenOPC service if action == 'sessions': print(' %-32s %-38s %-18s %-18s' % ('OPC Server', 'Client Object', 'Start Time', 'Last Transaction')) try: for server, guid, init_time, tx_time in OpenOPC.get_sessions( open_host, open_port): print(' %-32s %-38s %-18s %-18s' % (server, guid, time2str(init_time), time2str(tx_time))) except: error_msg = sys.exc_info()[1] print("Cannot connect to OpenOPC service at %s:%s - %s" % (open_host, open_port, error_msg)) exit() # Connect to OpenOPC service (Open mode) if opc_mode == 'open': try: opc = OpenOPC.open_client(open_host, open_port) except: error_msg = sys.exc_info()[1]