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)
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
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))
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))
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
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
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
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)
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()
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
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)