Example #1
0
def is_runing(tb_nm, conn=None, batch_id=''):
    """
    :param batch_id:
    :param tb_nm:
    :param conn:
    :return:
    """
    if conn is None:
        conn = Conn()
    sql = """select batch_id from {log_tb_nm} where tb_nm='{tb_nm}' 
                and start_dt>= current_timestamp-interval '3 hour' and batch_stat=0"""
    sql = sql.format(log_tb_nm=tb_task_log, tb_nm=tb_nm)
    flag = conn.query_one(sql)  # pd.read_sql(sql, conn)
    times = 0
    while flag:
        logger.warning("%s在执行中本次执行开始等待,等待第%s次" % (tb_nm, times))
        send_error_msg("batch_id:%s的作业%s一直在执行中本批次%s等待,请确认是否有执行故障" %
                       (flag, batch_id, tb_nm),
                       tb_nm,
                       if_to_wx=False)
        time.sleep(300)  # 等待5分钟
        times += 1
        flag = conn.query_one(sql)
        if flag and times > 3:
            logger.error("%s一直在执行中,请确认是否产生故障。此次执行报错" % tb_nm)
            raise Exception("%s一直在执行中,请确认是否产生故障。此次执行报错" % tb_nm)
    return False
Example #2
0
def get_from_dim_date(batch_dt, col_nm):
    """
    返回清算的时间 仅对海银清算时间
    :param batch_dt:日期
    :param col_nm: 指定的字段
    :return:
    """
    sql = """
       SELECT {col_nm} from dw.dim_date where dt_id='{batch_dt}'
        """.format(batch_dt=batch_dt, col_nm=col_nm)
    dps = Conn("DPS")
    try:
        rs = dps.query_one(sql)
        return rs
    except Exception as e:
        str(e)
        return None
Example #3
0
def get_rpt_dtm(batch_dt, dtm_type):
    """
    返回清算的时间 仅对海银清算时间
    :param batch_dt:日期
    :param dtm_type:
        -- 取上次报表结束时间  cvrt_typ: last_rpt_end_dtm
        -- 取今天报表结束时间  cvrt_typ: tdy_rpt_end_dtm
        -- 取下一个工作日     cvrt_typ:  nxt_workday
        -- 取季度的第一天     cvrt_typ: quar_start
        -- 取下个季度的第一天 cvrt_typ: quar_end
    :return:
    """
    if dtm_type in [
            'last_rpt_end_dtm', 'tdy_rpt_end_dtm', 'nxt_workday', 'quar_start',
            'quar_end'
    ]:
        sql = """
           SELECT
               dw.cvrt_dt('{batch_dt}', '{dtm_type}') AS dt  -- 上个工作日报表结束时间
           """.format(batch_dt=batch_dt, dtm_type=dtm_type)
        dps = Conn("DPS")
        return dps.query_one(sql)
    else:
        return None