def run_statistics(self, user_id, shop_id, chain_shop_id, for_dates): """ 为指定日期运行采购统计 :param for_dates iterable %Y-%m-%d s """ session = DBSession() statistic_session = statistic_DBSession() for date in for_dates: try: date = datetime.datetime.strptime(date, "%Y-%m-%d").date() except ValueError: raise ValueError("invalid date format: {}".format(date)) date_delta = (datetime.date.today() - date).days pub_statistic.purchase_order_goods_firm(session, statistic_session, user_id, shop_id, chain_shop_id, date_delta) session.close() statistic_session.close()
def statistic_session(self): if hasattr(self, "_statistic_session"): return self._statistic_session self._statistic_session = statistic_DBSession() return self._statistic_session
'export_statistic_data_only': { 'task': 'export_statistic_data_only', 'schedule': crontab(minute=50, hour=23), 'options': { "queue": "auto_work" } } } AutoWork.conf.CELERY_ROUTES = { # 任务调度队列 "auto_work.export_statistic_data_and_mail": {"queue": "auto_work"}, } scoped_DBSession = scoped_session( sessionmaker(autocommit=False, autoflush=False)) session = DBSession() statistic_session = statistic_DBSession() Shop = models.Shop Goods = models.Goods # @worker_init.connect def initialize_session(signal, sender): scoped_DBSession.configure(bind=engine) def get_goods_demand_by_shop(shop_id, date, statistic_type): """ 按天/周/月获取订货信息,分店铺展示 """ StatisticsDemand = models_statistic.StatisticsDemand filter_type = None if statistic_type == 1: