storage2.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:InplusTrader_Linux 作者: zhengwsh 项目源码 文件源码
def __update(self, key, target1, target2, sessionNum):
        """
        Basic update method.
        Looks into the database specified by 'key', find the latest 
        record in the collection of it. Then update the collections 
        till last trading date.

        parameters
        ----------
        * key: string; a database alias (refer to the database config)
          e.g., 'EQU_D1'.
        * target1: method; pointer to the function with which controller
          obtain all tickers in the database. Concretely, target1 are 
          self._all#Tickers methods.
        * target2: method; pointer to the api overlord requesting functions
          i.e. self._api.get_###_mongod methods.
        * sessionNum: integer; the number of threads.

        """
        try:
            # get databases and tickers
            db = self._dbs[key]['self']
            index = self._dbs[key]['index']
            allTickers = target1()
            coll = db[allTickers[0]]

            # find the latest timestamp in collection.
            latest = coll.find_one(
                     sort=[(index, pymongo.DESCENDING)])[index]
            start = datetime.strftime(
                latest + timedelta(days=1),'%Y%m%d')
            end = datetime.strftime(datetime.now(), '%Y%m%d')

            # then download.
            target2(db, start, end, sessionNum)
            return db

        except Exception, e:
            msg = '[MONGOD]: Unable to update data; ' + str(e)
            raise VNPAST_DatabaseError(msg)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号