def __init__(self): self.__metadata_storage = MetadataStorage() self.__specification_handler = SpecificationHandler() self.__publisher = rospy.Publisher('/statistics_rated', arni_msgs.msg.RatedStatistics, queue_size=50) self.__master_api_publisher = rospy.Publisher('/statistics_master', arni_msgs.msg.MasterApi, queue_size=10) self.__pub_queue = [] self.__master_api_queue = [] self.__aggregate = [] self.__aggregation_window = rospy.get_param("~aggregation_window", 3) self.__aggregate_start = rospy.Time.now() self.__processing_enabled = rospy.get_param("/enable_statistics", False) self.__alive_timers = {} self.__alive_countdown = {} rospy.Timer(rospy.Duration(rospy.get_param("~publish_interval", 5)), self.__publish_queue) rospy.Timer(rospy.Duration(rospy.get_param("~alive_interval", 5)), self.__check_alive) rospy.Timer( rospy.Duration(rospy.get_param("~master_api_publish_interval", 1)), self.__pollMasterAPI) rospy.Timer( rospy.Duration(rospy.get_param("/arni/check_enabled_interval", 10)), self.__update_enabled)
def command_line_runner(): parser = get_parser() args = vars(parser.parse_args()) port = args['port'] global app if args["w"]: app = app.create_app() t1 = threading.Thread(target=app.run, args=('0.0.0.0', port)) t1.start() elif args["m"]: me = MetadataStorage(60) me.init_index() t2 = threading.Thread(target=me.start) t2.start() elif args["a"]: me = MetadataStorage(60) me.init_index() t2 = threading.Thread(target=me.start) t2.start() apps = app.create_app() t1 = threading.Thread(target=apps.run, args=('0.0.0.0', port)) t1.start()
import datetime import logging import os import boto3 import dotenv import flask import requests from aws_client import Client from metadata_storage import MetadataStorage app = flask.Flask(__name__) app.config['DEBUG'] = True dotenv.load_dotenv() metadata_store = MetadataStorage(debug_mode=True) LOG = flask.logging.create_logger(app) def get_timestamp(): current_datetime = datetime.datetime.now() timestamp = str(current_datetime) return timestamp @app.before_first_request def before_first_request(): log_level = logging.INFO root = os.path.dirname(os.path.abspath(__file__)) log_directory = os.path.join(root, 'logs') if not os.path.exists(log_directory):