| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | # Author renyupeng# coding=utf-8# @Time    : 2021/11/30 6:11 下午# @Site    : # @File    : AudienceReportMonitor.py# @Software: PyCharm# @contact: renyupeng@c-top.com.cn# @Tel 1501435553import datetimeimport loggingfrom Apietl.conn.TidbProConn import TidbProConnfrom OuterDataCompareInnerData.Utils.SendEmail import SendEmailclass AudienceReportMonitor:    def __init__(self):        self.conn = TidbProConn.get_connection()        self.Audience_list = ['ctop_kuaishou_audience_report_daily_age_material',                              'ctop_kuaishou_audience_report_daily_business_material',                              'ctop_kuaishou_audience_report_daily_city_material',                              'ctop_kuaishou_audience_report_daily_client_material',                              'ctop_kuaishou_audience_report_daily_gender_material',                              'ctop_kuaishou_audience_report_daily_province_material']        self.stat_date = (datetime.date.today() + datetime.timedelta(-1)).strftime("%Y-%m-%d")    def monitor(self):        try:            messageList = ''            for table in self.Audience_list:                try:                    sql = """select count(1) from `jeecg-boot`.{table} where stat_date='{stat_date}'""".format(                        table=table, stat_date=self.stat_date)                    print(sql)                    rowCount = TidbProConn.quary(self.conn, sql)[0][0]                    if rowCount == 0:                        message = """{stat_date}日:{table} 数据量为零 请检查                          """.format(stat_date=self.stat_date,                                   table=table)                        messageList += message                    else:                        logging.info("""{stat_date}日:{table} 数据正常""".format(stat_date=self.stat_date, table=table))                except Exception as e:                    logging.error(e)            SendEmail.mail(messageList)        except Exception as e:            logging.error(e)if __name__ == '__main__':    AudienceReportMonitor().monitor()
 |