Exemplo n.º 1
0
def init_in_test(slug, task_id=None):
    import time
    try:
        begin = datetime.datetime.now()
        now = get_now_time_with_timezone()
        logging.info('开始初始化任务 {0: %Y-%m-%d %H:%M:%S}'.format(begin))
        site = session.query(Site).filter(Site.slug == slug).first()
        if site:
            task = Task()
            task.task_id = task_id
            task.belong_id = site.id
            task.name = '初始化任务: {0}'.format(site.name)
            task.create_time = now
            task.original_create_time = now
            task.modify_time = now
            session.add(task)
            try:
                session.commit()
            except Exception as e:
                logging.exception(
                    'ERROR in commit session site {0} reason {1}'.format(
                        slug, e))
                session.rollback()

            init_st = add_timezone_to_naive_time(
                datetime.datetime(2016, 12, 15))
            init_et = add_timezone_to_naive_time(datetime.datetime.now())
            total_days = (init_et - init_st).days
            times = total_days / 7
            detla = datetime.timedelta(days=7)
            count = 0.0
            et = init_st
            while 1:
                st = et
                et = et + detla
                count += 1
                percent = round(count / times, 2) * 100
                update_init_progress(task_id, percent, '任务执行中')
                time.sleep(0.5)
                if st > init_et:
                    break
        end = datetime.datetime.now()
        msg = '结束初始化任务 {0: %Y-%m-%d %H:%M:%S} 共计耗时 {1} 分钟'.format(
            end, (end - begin).seconds / 60.0)
        update_init_progress(task_id, 100, msg, TaskStatus.finish)
    except Exception as e:
        logging.exception('ERROR in init all site {0} reason {1}'.format(
            slug, e))
        session.rollback()
        update_init_progress(task_id, 0, e.message, TaskStatus.error)
Exemplo n.º 2
0
def create_tank(tid, site_id, *args, **kwargs):
    obj = FuelTank()
    obj.tank_id = tid,
    obj.name = ''
    obj.belong_id = site_id
    obj.create_time = get_now_time_with_timezone()
    for k, v in kwargs.items():
        setattr(obj, k, v)
    session.add(obj)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            site_id, e))
        session.rollback()
    return obj
Exemplo n.º 3
0
def create_object(obj_class, **kwargs):
    obj = obj_class()
    obj.create_time = get_now_time_with_timezone()
    for k, v in kwargs.items():
        if isinstance(v, datetime.datetime):
            v = add_timezone_to_naive_time(v)
        setattr(obj, k, v)
    session.add(obj)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            kwargs.get('belong_id'), e))
        session.rollback()
    logging.info('INFO create obj {0: %Y-%m-%d %H:%M:%S} success'.format(
        obj.original_create_time))
Exemplo n.º 4
0
def create_card_record(**kwargs):
    obj = CardRecord()
    obj.create_time = get_now_time_with_timezone()
    obj.modify_time = get_now_time_with_timezone()
    for k, v in kwargs.items():
        if isinstance(v, datetime.datetime):
            v = add_timezone_to_naive_time(v)
        setattr(obj, k, v)
    session.add(obj)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            kwargs.get('belong_id'), e))
        session.rollback()
    logging.info('INFO create card record {0} success'.format(
        obj.original_create_time))
Exemplo n.º 5
0
def update_rev(rid, site, **kwargs):
    res = session.query(Receiver).filter(
        Receiver.rid == rid, Receiver.belong_id == site.id).first()
    if not res:
        res = Receiver()
        res.rid = rid
        res.belong_id = site.id
    for k, v in kwargs.items():
        setattr(res, k, v)
    session.add(res)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            kwargs.get('belong_id'), e))
        session.rollback()
    return res
Exemplo n.º 6
0
def update_second_classification(cid, **kwargs):
    res = session.query(SecondClassification).filter(
        SecondClassification.id == cid).first()
    if not res:
        res = SecondClassification()
        res.create_time = get_now_time_with_timezone()
        res.id = cid
    for k, v in kwargs.items():
        setattr(res, k, v)
    res.original_create_time = get_now_time_with_timezone()
    session.add(res)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            kwargs.get('belong_id'), e))
        session.rollback()
    return res
Exemplo n.º 7
0
def update_goods_inventory(hash_str, **kwargs):
    gi = get_obj_by_hash(hash_str, GoodsInventory)
    if not gi:
        gi = GoodsInventory()
        gi.create_time = get_now_time_with_timezone()
        gi.original_create_time = get_now_time_with_timezone()
        gi.last_sell_time = add_timezone_to_naive_time(
            datetime.datetime(2017, 1, 1))
    for k, v in kwargs.items():
        setattr(gi, k, v)
    gi.modify_time = get_now_time_with_timezone()
    session.add(gi)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            kwargs.get('belong_id'), e))
        session.rollback()
    return gi
Exemplo n.º 8
0
 def on_success(self, retval, task_id, args, kwargs):
     now = get_now_time_with_timezone()
     site = get_site_by_slug(args[0])
     logging.info('task done: {0}'.format(retval))
     log = CeleryLog()
     log.task_id = task_id
     log.task_type = 1
     log.status = 1
     log.err_info = ''
     log.create_time = now
     log.modify_time = now
     log.belong_id = site.id
     log.original_create_time = now
     session.add(log)
     try:
         session.commit()
     except Exception as e:
         logging.exception(
             'ERROR in commit session task {0} reason {1}'.format(
                 task_id, e))
         session.rollback()
     return super(OilTask, self).on_success(retval, task_id, args, kwargs)
Exemplo n.º 9
0
def get_site_from_csv():
    p = Pinyin()
    now = get_now_time_with_timezone()
    py_list = []
    with codecs.open('ip.csv', encoding='utf-8') as f1:
        for line in f1:
            name, bos, fuel = line.split(',')
            py = p.get_initials(name, '').replace(' ', '')
            if py in py_list:
                py = '{0}{1}'.format(py, random.randint(0, 100))
            py_list.append(py)
            site = Site()
            site.name = name
            site.fuel_server = fuel.strip()
            site.bos_server = bos.strip()
            site.slug = py
            site.create_time = now
            site.modify_time = now
            site.original_create_time = now
            site.check = False
            site.lock = 1000
            session.add(site)
        session.commit()
Exemplo n.º 10
0
def create_abnormal_record(abnormal_type, **kwargs):
    if abnormal_type == 1:
        st, et = get_today_st_et()
    else:
        st, et = get_week_st_et()
    obj = AbnormalRecord()
    obj.create_time = get_now_time_with_timezone()
    obj.start_time = st
    obj.end_time = et
    obj.abnormal_type = abnormal_type
    for k, v in kwargs.items():
        setattr(obj, k, v)
    session.add(obj)
    try:
        session.commit()
    except Exception as e:
        logging.exception('ERROR in commit session site {0} reason {1}'.format(
            kwargs.get('belong_id'), e))
        session.rollback()
    logging.info(
        'INFO create abnormal record {0: %Y-%m-%d %H:%M:%S} success'.format(
            obj.create_time))
    return obj
Exemplo n.º 11
0
 def on_failure(self, exc, task_id, args, kwargs, einfo):
     now = get_now_time_with_timezone()
     site = get_site_by_slug(args[0])
     logging.exception('task fail, reason: {0}'.format(exc))
     log = CeleryLog()
     log.task_id = task_id
     log.task_type = 1
     log.status = 0
     log.create_time = now
     log.modify_time = now
     log.original_create_time = now
     log.err_info = einfo
     log.belong_id = site.id
     session.add(log)
     try:
         session.commit()
     except Exception as e:
         logging.exception(
             'ERROR in commit session task {0} reason {1}'.format(
                 task_id, e))
         session.rollback()
     return super(OilTask, self).on_failure(exc, task_id, args, kwargs,
                                            einfo)