def thread_db(obj): if configloader.get_config().SPEEDTEST == 0: return if configloader.get_config().API_INTERFACE == 'modwebapi': import webapi_utils global webapi webapi = webapi_utils.WebApi() global db_instance db_instance = obj() try: while True: try: db_instance.speedtest_thread() except Exception as e: import traceback trace = traceback.format_exc() logging.error(trace) #logging.warn('db thread except:%s' % e) if db_instance.event.wait(configloader.get_config().SPEEDTEST * 3600): break if db_instance.has_stopped: break except KeyboardInterrupt as e: pass db_instance = None
def thread_db(obj): if (configloader.get_config().CLOUDSAFE == 0 or platform.system() != "Linux"): return if configloader.get_config().API_INTERFACE == "modwebapi": import webapi_utils global webapi webapi = webapi_utils.WebApi() global db_instance db_instance = obj() try: while True: try: db_instance.auto_block_thread() except Exception as e: import traceback trace = traceback.format_exc() logging.error(trace) # logging.warn('db thread except:%s' % e) if db_instance.event.wait(60): break if db_instance.has_stopped: break except KeyboardInterrupt as e: pass db_instance = None
def thread_db(obj): import socket import webapi_utils global db_instance global webapi timeout = 60 socket.setdefaulttimeout(timeout) last_rows = [] db_instance = obj() webapi = webapi_utils.WebApi() shell.log_shadowsocks_version() try: import resource logging.info( "current process RLIMIT_NOFILE resource: soft %d hard %d" % resource.getrlimit(resource.RLIMIT_NOFILE)) except: pass try: while True: load_config() try: ping = webapi.getApi("ping") if ping is None: logging.error( "something wrong with your http api, please check your config and website status and try again later." ) else: db_instance.push_db_all_user() rows = db_instance.pull_db_all_user() db_instance.del_server_out_of_bound_safe( last_rows, rows) last_rows = rows except Exception as e: trace = traceback.format_exc() logging.error(trace) # logging.warn('db thread except:%s' % e) if db_instance.event.wait( 60) or not db_instance.is_all_thread_alive(): break if db_instance.has_stopped: break except KeyboardInterrupt as e: pass db_instance.del_servers() ServerPool.get_instance().stop() db_instance = None
def loop(event): webapi = webapi_utils.WebApi() while True: time.sleep(1) global CC if(CC==[]): continue; WTP = CC CC=[] res = webapi.postApi("usage",{'node_id': get_config().NODE_ID},{"data":WTP}) if(res): logging.info("Usage push succeed! {} usages pushed!".format(len(WTP))) else: logging.error("Usage Push Failed!") CC += WTP if event.is_set(): logging.info("leo stopped!") break