Beispiel #1
0
 def __init__(self):
     Entity.__init__(self,
                     "session_mana" + get_worker_id(),
                     tag="web_session",
                     broadcast=True)
     self._sessions = dict()  # 用保存当前进程上的session的id与其对象之间的关系
     self._workerid = get_worker_id()  # 当前所属进程的id
Beispiel #2
0
 def __init__(self, node_name, log_infos):
     """
     :param node_name:    当前节点的名字
     :param log_infos:    需要监控的日志  {"name" : "/home/fjs/fjs.log"}  名字到路径的字典
     """
     Entity.__init__(self, NODE_NAME)
     self._node_name = node_name
     self._log_infos = log_infos
Beispiel #3
0
 def __init__(self, node_name, log_infos):
     """
     :param node_name:    当前节点的名字
     :param log_infos:    需要监控的日志  {"name" : "/home/fjs/fjs.log"}  名字到路径的字典
     """
     Entity.__init__(self, NODE_NAME)
     self._node_name = node_name
     self._log_infos = log_infos
    def __init__(self, session_id, manager):
        Entity.__init__(self, session_id)
        self._attrs = dict()                          # 保存属性
        self._last_time = get_time()                  # session的上次访问时间
        self._session_manager = manager               # 其所属的manager对象
        self._timeout = DEFAULT_TIMEOUT               # 超时时间

        # 通过这个定时器来定时的检测sessoion的上次访问时间,如果超时了,那么将会移除session
        self._check_timer = gevent.get_hub().loop.timer(DEFAULT_TIMEOUT, DEFAULT_TIMEOUT)
        self._check_timer.start(self._check)          # 启动超时的检测定时器
Beispiel #5
0
 def release(self):
     """
     主要是扩展了从session管理器中移除当前session的逻辑,以及超时检测定时器的关闭,移除设置的一些值
     这个也是一个远程方法,用于显示的调用移除session对象
     """
     Entity.release(self)
     self._session_manager.remove_session(self.id)
     self._check_timer.stop()
     self._attrs.clear()
     self._timer = None
     self._manager = None
Beispiel #6
0
    def __init__(self, session_id, manager):
        Entity.__init__(self, session_id)
        self._attrs = dict()  # 保存属性
        self._last_time = get_time()  # session的上次访问时间
        self._session_manager = manager  # 其所属的manager对象
        self._timeout = DEFAULT_TIMEOUT  # 超时时间

        # 通过这个定时器来定时的检测sessoion的上次访问时间,如果超时了,那么将会移除session
        self._check_timer = gevent.get_hub().loop.timer(
            DEFAULT_TIMEOUT, DEFAULT_TIMEOUT)
        self._check_timer.start(self._check)  # 启动超时的检测定时器
 def release(self):
     """
     主要是扩展了从session管理器中移除当前session的逻辑,以及超时检测定时器的关闭,移除设置的一些值
     这个也是一个远程方法,用于显示的调用移除session对象
     """
     Entity.release(self)
     self._session_manager.remove_session(self.id)
     self._check_timer.stop()
     self._attrs.clear()
     self._timer = None
     self._manager = None
Beispiel #8
0
 def __init__(self, mongo_info):
     """
     :param mongo_info: {"ip": "", "port": 123, "db": "", "account": "", "pwd": ""}
     :return:
     """
     Entity.__init__(self, STATE_ENTITY_NAME, broadcast=True)
     self._data = dict()  # 用于记录entity的调用信息 entity_id -> InvokeInfo
     if mongo_info is not None:
         self._mongo_info = mongo_info
         self._timer = None
         self._last_day = self.get_today_day_str()
         self._init_mongo()
Beispiel #9
0
 def __init__(self, mongo_info):
     """
     :param mongo_info: {"ip": "", "port": 123, "db": "", "account": "", "pwd": ""}
     :return:
     """
     Entity.__init__(self, STATE_ENTITY_NAME, broadcast=True)
     self._data = dict()                       # 用于记录entity的调用信息 entity_id -> InvokeInfo
     if mongo_info is not None:
         self._mongo_info = mongo_info
         self._timer = None
         self._last_day = self.get_today_day_str()
         self._init_mongo()
Beispiel #10
0
    def __init__(self, log_path):
        """
        远程会要求log节点进程创建一个这种entity,用于远程通过rpc方法来获取监控的日志的数据

        注意:为了防止一些意外,会启动一个定时器,检测上次访问时间,如果很长时间都没有访问了,那么会自动
             停止LogGetter对象,然后清除当前entity,主要为了在一些异常情况下能够关闭开启了的子进程,释放占用的资源
        :param log_path:    日志的路径
        """
        Entity.__init__(self, _create_id())
        self._log_path = log_path
        self._getter = LogGetter(log_path)
        self._last_time = get_time()  # 用于记录上一次访问时间
        self._check_timer = gevent.get_hub().loop.timer(40, 40)
        self._check_timer.start(self._check)  # 用于检测上次访问时间的timer
Beispiel #11
0
    def __init__(self, log_path):
        """
        远程会要求log节点进程创建一个这种entity,用于远程通过rpc方法来获取监控的日志的数据

        注意:为了防止一些意外,会启动一个定时器,检测上次访问时间,如果很长时间都没有访问了,那么会自动
             停止LogGetter对象,然后清除当前entity,主要为了在一些异常情况下能够关闭开启了的子进程,释放占用的资源
        :param log_path:    日志的路径
        """
        Entity.__init__(self, _create_id())
        self._log_path = log_path
        self._getter = LogGetter(log_path)
        self._last_time = get_time()                        # 用于记录上一次访问时间
        self._check_timer = gevent.get_hub().loop.timer(40, 40)
        self._check_timer.start(self._check)                # 用于检测上次访问时间的timer
    def __init__(self, name, tag):
        """
        对于tag管理器,虽然在创建的时候会向config进程注册当前entity,但是并不需要以后刻意的向config进程来销毁当前
        tag管理器的注册,因为config部分在掉哟功能当前entity方法的时候,如果出现了异常,会自动将这个enttiy的stub直接
        移除
        :param name:    因为是一个bean,所以需要设置一个名字
        :param tag:     需要管理的entity的tag的名字
        """
        Bean.__init__(self, name)
        Entity.__init__(self, str(uuid.uuid4()))  # 对于entity的id,这里创建一个唯一的就行
        self._tag = tag                           # 需要维护的entity的tag值
        self._stubs = []                          # 从config上面获取的指定的tag的entity将会保存到这里来
        self._status = False                      # 如果进程信息有变动,将会将这个标志为设置为True

        # 用于向config进程注册当前tag管理器
        self.config_stub.add_tag_manager(self._id, self._manager.address, self._tag)
Beispiel #13
0
    def __init__(self, log_path, content, time_out=10):
        """
        :param log_path:   需要grep的文件路径,这里最好是使用绝对路径
        :param content:    需要grep的内容
        :param time_out:   子进程超时时间,防止grep消耗太多
        """
        Entity.__init__(self, _create_id())
        self._log_path = log_path
        self._time_out = time_out
        self._content = content
        self._last_time = get_time()                          # 记录上次访问时间

        # 创建一个定时器来检查上次访问时间,保证当前Entity一定会被释放
        self._check_timer = gevent.get_hub().loop.timer(20, 20)
        self._check_timer.start(self._check)

        self._grep = Grep(log_path, content, time_out)        # 代理这个的方法来获取grep的数据
Beispiel #14
0
    def __init__(self, log_path, content, time_out=10):
        """
        :param log_path:   需要grep的文件路径,这里最好是使用绝对路径
        :param content:    需要grep的内容
        :param time_out:   子进程超时时间,防止grep消耗太多
        """
        Entity.__init__(self, _create_id())
        self._log_path = log_path
        self._time_out = time_out
        self._content = content
        self._last_time = get_time()  # 记录上次访问时间

        # 创建一个定时器来检查上次访问时间,保证当前Entity一定会被释放
        self._check_timer = gevent.get_hub().loop.timer(20, 20)
        self._check_timer.start(self._check)

        self._grep = Grep(log_path, content, time_out)  # 代理这个的方法来获取grep的数据
Beispiel #15
0
    def __init__(self, name, tag):
        """
        对于tag管理器,虽然在创建的时候会向config进程注册当前entity,但是并不需要以后刻意的向config进程来销毁当前
        tag管理器的注册,因为config部分在掉哟功能当前entity方法的时候,如果出现了异常,会自动将这个enttiy的stub直接
        移除
        :param name:    因为是一个bean,所以需要设置一个名字
        :param tag:     需要管理的entity的tag的名字
        """
        Bean.__init__(self, name)
        Entity.__init__(self, str(uuid.uuid4()))  # 对于entity的id,这里创建一个唯一的就行
        self._tag = tag  # 需要维护的entity的tag值
        self._stubs = []  # 从config上面获取的指定的tag的entity将会保存到这里来
        self._status = False  # 如果进程信息有变动,将会将这个标志为设置为True

        # 用于向config进程注册当前tag管理器
        self.config_stub.add_tag_manager(self._id, self._manager.address,
                                         self._tag)
Beispiel #16
0
 def __init__(self):
     Entity.__init__(self, LOG_CENTER_NAME, broadcast=True)
     self._nodes = {}
     self._ping_timer = gevent.get_hub().loop.timer(CHECK_TIME, CHECK_TIME)
     self._ping_timer.start(self._do_ping)  # 这个用于定期的检查node节点是否还存活
     self._init_from_persist()
 def __init__(self):
     Entity.__init__(self, "session_mana" + get_worker_id(), tag="web_session", broadcast=True)
     self._sessions = dict()               # 用保存当前进程上的session的id与其对象之间的关系
     self._workerid = get_worker_id()      # 当前所属进程的id
Beispiel #18
0
 def __init__(self):
     Entity.__init__(self, LOG_CENTER_NAME, broadcast=True)
     self._nodes = {}
     self._ping_timer = gevent.get_hub().loop.timer(CHECK_TIME, CHECK_TIME)
     self._ping_timer.start(self._do_ping)      # 这个用于定期的检查node节点是否还存活
     self._init_from_persist()