| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | # Author renyupeng# coding=utf-8# @Time    : 2021/11/17 6:48 下午# @Site    : # @File    : MonitorRuixuanTask.py# @Software: PyCharm# @contact: renyupeng@c-top.com.cn# @Tel 1501435553import datetimeimport loggingimport osfrom Apietl.conn.TidbConn import TidbConnfrom Apietl.conn.TidbProConn import TidbProConnfrom OuterDataCompareInnerData.Utils.SchedulerList import SchedulerListfrom OuterDataCompareInnerData.Utils.sendMessage import feishuMsgclass MonitorRuixuanTask:    def __init__(self):        self.InnerConn = TidbConn.get_connection()        self.OuterConn = TidbProConn.get_connection()        self.table_list = [            'kuaishou_live_account_report_daily_dw'            , 'kuaishou_live_campaign_report_daily_dw'            , 'kuaishou_live_unit_report_daily_dw'        ]        self.stat_date = (datetime.date.today() + datetime.timedelta(-1)).strftime("%Y%m%d")    def CheckTask(self):        try:            for table in self.table_list:                try:                        sql = """select count(1) from `application`.{table} where stat_date={stat_date}""".format(                            table=table, stat_date=self.stat_date)                        InnertotalNum = TidbConn.quary(self.InnerConn, sql)[0][0]                        OutertotalNum = TidbConn.quary(self.OuterConn, sql)[0][0]                        print("""{stat_date}日 {table} 内网数量为{InnertotalNum},外网数量为{OutertotalNum}""".format(                            stat_date=self.stat_date,                            table=table,                            InnertotalNum=InnertotalNum,                            OutertotalNum=OutertotalNum))                        if InnertotalNum == 0:                            feishuMsg.send_robot_msg(                                """{stat_date}日 {table} 数据为0""".format(stat_date=self.stat_date, table=table))                        elif InnertotalNum != OutertotalNum:                            feishuMsg.send_robot_msg(                                """{stat_date}日 {table} 内网数量为{InnertotalNum},外网数量为{OutertotalNum} 数据不相等 datax                                 数据同步启动""".format(                                    stat_date=self.stat_date,                                    table=table,                                    InnertotalNum=InnertotalNum,                                    OutertotalNum=OutertotalNum))                            datax_json = SchedulerList.LiveSchedulerList(table)                            os.system('sh /data/datax/application/push_live_pro.sh {stat_date} {table} {datax_json}'.format(                                stat_date=self.stat_date, table=table, datax_json=datax_json))                        else:                            feishuMsg.send_robot_msg(                                """{stat_date}日 {table} 内网数量为{InnertotalNum},外网数量为{OutertotalNum} 数据相等 """.format(                                    stat_date=self.stat_date,                                    table=table,                                    InnertotalNum=InnertotalNum,                                    OutertotalNum=OutertotalNum))                except Exception as e:                    logging.error(e)                    return -1            TidbConn.conn_close(conn=self.InnerConn)            TidbProConn.conn_close(conn=self.OuterConn)        except Exception as e:            logging.error(e)            return -1if __name__ == '__main__':    MonitorRuixuanTask().CheckTask()
 |