python之定时任务

import time

import pymysql

def dosql():

    '''连接数据库'''

    db =pymysql.connect(

        host='',

        port= '3306',

        user='root',

        password='',

        database='',

        charset='utf8'

    )

    cur =db.cursor()

    sqlcom=("SELECT COUNT(1) mau  FROM tb_user_account a WHERE a.lastVisitTime >= CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') AND a.accountType = 0;")

    try:

        cur.execute(sqlcom)

        results = cur.fetchall()

      # 获取全部结果集。  fetchone 查询第一条数据

        if not results: #判断是否为空

            print('数据为空')

        else:

            for row in results:

                print('统计用户表数据库的日活跃的数量=', row)

                # print("统计用户表数据库的日活跃的数量:" %a )

    except Exception as e:

        db.rollback()

    finally:

        db.close()  # 关闭数据库。

    # 假装做这件事情需要一分钟

    time.sleep(60)

def main(h=18, m=37):

    '''h表示设定的小时,m为设定的分钟'''

    while True:

        # 判断是否达到设定时间,例如23:00

        while True:

            now =datetime.datetime.now()

            # 到达设定时间,结束内循环

            if now.hour == h and now.minute == m:

            # 不到时间就等10秒之后再次检测

                break

                time.sleep(10)

        # 做正事, 一天做一次

        dosql()

if __name__ == '__main__':

    main()

你可能感兴趣的:(python之定时任务)