Beispiel #1
0
 def print_configs(cls):
     # 打印配置
     self = cls()
     enable = '已开启'
     disable = '未开启'
     self.add_quick_log('**** 当前配置 ****')
     self.add_quick_log('多线程查询: {}'.format(
         get_true_false_text(Config().QUERY_JOB_THREAD_ENABLED, enable,
                             disable)))
     self.add_quick_log('语音验证码: {}'.format(
         get_true_false_text(Config().NOTIFICATION_BY_VOICE_CODE, enable,
                             disable)))
     self.add_quick_log('查询间隔: {} 秒'.format(Config().QUERY_INTERVAL))
     self.add_quick_log('用户心跳检测间隔: {} 秒'.format(
         Config().USER_HEARTBEAT_INTERVAL))
     if Config().is_cluster_enabled():
         from py12306.cluster.cluster import Cluster
         self.add_quick_log('分布式查询: {}'.format(
             get_true_false_text(Config().is_cluster_enabled(), enable,
                                 enable)))
         self.add_quick_log('节点名称: {}'.format(Cluster().node_name))
         self.add_quick_log('节点是否主节点: {}'.format(
             get_true_false_text(Config().is_master(), '是', '否')))
         self.add_quick_log('子节点提升为主节点: {}'.format(
             get_true_false_text(Config().NODE_SLAVE_CAN_BE_MASTER, enable,
                                 disable)))
     self.add_quick_log()
     self.flush()
     return self
Beispiel #2
0
 def print_configs(cls):
     # 打印配置
     self = cls()
     enable = '已开启'
     disable = '未开启'
     self.add_quick_log('**** 当前配置 ****')
     self.add_quick_log('多线程查询: {}'.format(get_true_false_text(Config().QUERY_JOB_THREAD_ENABLED, enable, disable)))
     self.add_quick_log('CDN 状态: {}'.format(get_true_false_text(Config().CDN_ENABLED, enable, disable))).flush()
     self.add_quick_log('通知状态:')
     self.add_quick_log(
         '语音验证码: {}'.format(get_true_false_text(Config().NOTIFICATION_BY_VOICE_CODE, enable, disable)))
     self.add_quick_log('邮件通知: {}'.format(get_true_false_text(Config().EMAIL_ENABLED, enable, disable)))
     self.add_quick_log('钉钉通知: {}'.format(get_true_false_text(Config().DINGTALK_ENABLED, enable, disable)))
     self.add_quick_log('Telegram通知: {}'.format(get_true_false_text(Config().TELEGRAM_ENABLED, enable, disable)))
     self.add_quick_log('ServerChan通知: {}'.format(get_true_false_text(Config().SERVERCHAN_ENABLED, enable, disable)))
     self.add_quick_log('Bark通知: {}'.format(get_true_false_text(Config().BARK_ENABLED, enable, disable)))
     self.add_quick_log(
         'PushBear通知: {}'.format(get_true_false_text(Config().PUSHBEAR_ENABLED, enable, disable))).flush(sep='\t\t')
     self.add_quick_log('查询间隔: {} 秒'.format(Config().QUERY_INTERVAL))
     self.add_quick_log('用户心跳检测间隔: {} 秒'.format(Config().USER_HEARTBEAT_INTERVAL))
     self.add_quick_log('WEB 管理页面: {}'.format(get_true_false_text(Config().WEB_ENABLE, enable, disable)))
     if Config().is_cluster_enabled():
         from py12306.cluster.cluster import Cluster
         self.add_quick_log('分布式查询: {}'.format(get_true_false_text(Config().is_cluster_enabled(), enable, enable)))
         self.add_quick_log('节点名称: {}'.format(Cluster().node_name))
         self.add_quick_log('节点是否主节点: {}'.format(get_true_false_text(Config().is_master(), '是', '否')))
         self.add_quick_log(
             '子节点提升为主节点: {}'.format(get_true_false_text(Config().NODE_SLAVE_CAN_BE_MASTER, enable, disable)))
     self.add_quick_log()
     self.flush()
     return self
Beispiel #3
0
 def __init__(self):
     self.session = Request()
     self.request_device_id()
     self.cluster = Cluster()
     self.update_query_interval()
     self.update_query_jobs()
     self.get_query_api_type()
Beispiel #4
0
    def __init__(self, info, query):
        self.cluster = Cluster()
        self.left_dates = info.get('left_dates')
        # 多车站已放在下面处理
        # self.left_station = info.get('stations').get('left')
        # self.arrive_station = info.get('stations').get('arrive')
        # self.left_station_code = Station.get_station_key_by_name(self.left_station)
        # self.arrive_station_code = Station.get_station_key_by_name(self.arrive_station)
        self.stations = info.get('stations')
        self.stations = [self.stations] if isinstance(self.stations,
                                                      dict) else self.stations
        self.job_name = info.get(
            'job_name', '{} -> {}'.format(self.stations[0]['left'],
                                          self.stations[0]['arrive']))

        self.account_key = str(info.get('account_key'))
        self.allow_seats = info.get('seats')
        self.allow_train_numbers = info.get('train_numbers')
        self.members = info.get('members')
        self.member_num = len(self.members)
        self.member_num_take = self.member_num
        self.allow_less_member = bool(info.get('allow_less_member'))

        self.interval = query.interval
        self.query = query
Beispiel #5
0
 def flush(cls, sep='\n', end='\n', file=None, exit=False, publish=True):
     from py12306.cluster.cluster import Cluster
     self = cls()
     logs = self.get_logs()
     # 输出到文件
     if file == None and Config().OUT_PUT_LOG_TO_FILE_ENABLED and not Const.IS_TEST:  # TODO 文件无法写入友好提示
         file = open(Config().OUT_PUT_LOG_TO_FILE_PATH, 'a', encoding='utf-8')
     if not file: file = None
     # 输出日志到各个节点
     if publish and self.quick_log and Config().is_cluster_enabled() and Cluster().is_ready:  #
         f = io.StringIO()
         with redirect_stdout(f):
             print(*logs, sep=sep, end='' if end == '\n' else end)
         out = f.getvalue()
         Cluster().publish_log_message(out)
     else:
         print(*logs, sep=sep, end=end, file=file)
     self.empty_logs(logs)
     if exit: sys.exit()
Beispiel #6
0
    def handler_exit(self, *args, **kwargs):
        """
        程序退出
        :param args:
        :param kwargs:
        :return:
        """
        if Config.is_cluster_enabled():
            from py12306.cluster.cluster import Cluster
            Cluster().left_cluster()

        sys.exit()
Beispiel #7
0
def clusters():
    """
    节点统计
    节点数量,主节点,子节点列表
    :return:
    """
    from py12306.cluster.cluster import Cluster
    nodes = Cluster().nodes
    count = len(nodes)
    node_lists = list(nodes)
    master = [key for key, val in nodes.items() if int(val) == Cluster.KEY_MASTER]
    master = master[0] if master else ''

    return jsonify({
        'master': master,
        'count': count,
        'node_lists': ', '.join(node_lists)
    })
Beispiel #8
0
 def __init__(self, info, query):
     self.cluster = Cluster()
     self.query = query
     self.init_data(info)
     self.update_interval()
Beispiel #9
0
 def __init__(self, info):
     self.cluster = Cluster()
     self.init_data(info)
Beispiel #10
0
 def __init__(self):
     self.cluster = Cluster()
     create_thread_and_run(self, 'watch_cdn', False)
Beispiel #11
0
 def is_master():  # 是不是 主
     from py12306.cluster.cluster import Cluster
     return Config().CLUSTER_ENABLED and (Config().NODE_IS_MASTER
                                          or Cluster().is_master)
Beispiel #12
0
 def __init__(self):
     super().__init__()
     self.data_path = Config().QUERY_DATA_DIR + 'status.json'
     self.cluster = Cluster()
Beispiel #13
0
 def __init__(self):
     self.session = Request()
     self.cluster = Cluster()
     self.update_query_interval()
     self.update_query_jobs()
Beispiel #14
0
 def __init__(self):
     self.cluster = Cluster()
     self.heartbeat = Config().USER_HEARTBEAT_INTERVAL
     self.update_interval()
     self.update_user_accounts()
Beispiel #15
0
 def get_remote_config(self):
     if not self.is_cluster_enabled(): return
     from py12306.cluster.cluster import Cluster
     return Cluster().session.get_pickle(Cluster().KEY_CONFIGS, {})
Beispiel #16
0
 def save_to_remote(self):
     if not self.is_master(): return
     from py12306.cluster.cluster import Cluster
     Cluster().session.set_pickle(Cluster().KEY_CONFIGS, self.envs)
Beispiel #17
0
 def __init__(self):
     from py12306.cluster.cluster import Cluster
     self.cluster = Cluster()
Beispiel #18
0
 def __init__(self):
     self.cluster = Cluster()
     self.update_interval()
     self.update_user_accounts()
Beispiel #19
0
 def init_class(self):
     from py12306.cluster.cluster import Cluster
     if Config.is_cluster_enabled():
         Cluster().run()