def __write_data(conf, data, module="", loglevel="ERROR"): client = __connect_influx(conf) client.switch_database(conf["database"]) log = logger.instance(module, loglevel) for i in range(MAX_WRITE_ATTEMPTS): try: if client.write_points(data): log.info("InfluxDB write OK") break else: log.warning("Can't write to InfluxDB") time.sleep(i + 1) except Exception as ex: s = str(ex).replace("b'", "").replace("\\n'", "") #.replace("'","\"") err = json.loads(s).get("error") log.error("InfluxDB write error - {}".format(err)) client.close()
import threading import os, time import logger logger = logger.instance(__name__, os.environ.get('LOG_REPTIMER', 'ERROR')) class RepeatedTimer(object): # https://stackoverflow.com/questions/18018033/how-to-stop-a-looping-thread-in-python actionThread = None stopEvent = None def __init__(self, interval, function, args=[]): self.interval = interval self.action = function self.args = args def handle(self, stopEvent, action, args, interval): cnt = interval while not stopEvent.is_set(): if cnt >= interval: try: action(*args) except Exception as ex: print(ex) # self.stop() # QUESTION break cnt = 0 cnt += 1 if interval > 0:
from app import app from flask import request from flask import jsonify import os import logger, tools logger = logger.instance( __name__, os.environ.get('LOG_APP_ROUTES', app.config['LOGGING'])) # ========================================================= # R O U T E H A N D L E R S # # --------------------------------------------------------- # index page @app.route('/') @app.route('/index') def index(): return jsonify(tools.get_active_miners()) # ---------------------------------------------------------
from app import app from flask import request from flask import jsonify import os, json import logger logger = logger.instance(__name__, os.environ.get('LOG_LEVEL', app.config['LOGGING'])) def get_active_miners(): miners = [] for f in os.listdir(app.config['DATA_DIR']): with open(os.path.join(app.config['DATA_DIR'], f)) as miner_config: mc = json.load(miner_config) miners.append(mc) return miners