Beispiel #1
0
def main(props, baseTime, srvList, oprList):
    logdb = DbConnection(__createDbInfo("logdb", props))
    gmsdb = DbConnection(__createDbInfo("gmsdb", props))
    logdb.connect()
    gmsdb.connect()

    baseDate = datetime.date.today()
    if baseTime:
        baseDate = datetime.datetime.strptime(baseTime, "%Y-%m-%d")

    allSql = []
    #平台
    allSql.extend(globalStatsForAll(baseDate, logdb, gmsdb))
    allSql.extend(dayStatsForAll(baseDate, logdb, gmsdb))

    #渠道
    for opr in oprList:
        # 全局数据
        r = globalStatsForOpr(baseDate, opr, logdb, gmsdb)
        allSql.extend(r)

        # 日数据
        r = dayStatsForOpr(baseDate, opr, logdb, gmsdb)
        allSql.extend(r)

    #服
    for si in srvList:
        # 全局数据
        r = globalStatsForServer(baseDate, si, logdb, gmsdb)
        allSql.extend(r)

        # 日数据
        r = dayStatsForServer(baseDate, si, logdb, gmsdb)
        allSql.extend(r)

        # 游戏数据
        r = gameStats(baseDate, si, logdb, gmsdb)
        allSql.extend(r)

    for sql in allSql:
        utils.logInfo("sql=%s" % sql)

    if not utils.ONLY_SQL:
        try:
            gmsdb.setAutoCommit(False)
            for sql in allSql:
                utils.logInfo("execute sql=%s" % sql)
                gmsdb.update(sql)
            gmsdb.commit()
        except:
            gmsdb.rollback()
            utils.logException('Exception')
        finally:
            gmsdb.setAutoCommit(True)

    utils.logInfo("delete expire data...")
    expireSql = deleteExpireLogs(baseDate)

    for sql in expireSql:
        utils.logInfo("sql=%s" % sql)

    if not utils.ONLY_SQL:
        logdb.setAutoCommit(True)
        for sql in expireSql:
            while True:
                utils.logInfo("execute sql=%s" % sql)
                if logdb.update(sql) == 0:
                    break
    utils.logInfo("all done!")

    # 关闭连接
    logdb.disconnect()
    gmsdb.disconnect()