예제 #1
0
파일: Data.py 프로젝트: rsukhar/ft
 def trade_dates(ticker, min_date=None, max_date=None, as_dtime=True):
     """ Get a list of trade days for provided ticker """
     db = DB()
     query = 'select distinct(date(`dtime`)) as `d` from `quotes` where `ticker` = "%s" ' % ticker
     if min_date is not None or max_date is not None:
         if min_date is not None and not isinstance(min_date,
                                                    datetime.datetime):
             min_date = datetime.datetime.combine(min_date,
                                                  datetime.time(0, 0))
         if max_date is not None and not isinstance(max_date,
                                                    datetime.datetime):
             max_date = datetime.datetime.combine(max_date,
                                                  datetime.time(23, 59))
         if min_date is not None and max_date is not None:
             query += 'and `dtime` between "%s" and "%s" ' % (min_date,
                                                              max_date)
         elif min_date is not None:
             query += 'and `dtime` >= "%s" ' % min_date
         else:
             query += 'and `dtime` <= "%s"' % max_date
     query += 'order by `d` asc'
     db.cursor.execute(query)
     midnight = datetime.time(0, 0)
     for date in db.cursor:
         if as_dtime:
             yield datetime.datetime.combine(date[0], midnight)
         else:
             yield date[0]
     db.close()
     pass
예제 #2
0
        all_data = db.query(SQLMgr.get_all_kline_info(Tools.get_today_str()))
        if all_data:
            for row in all_data:
                task_queue.put(row)
        print all_data
        worker_thread_num = 4
        worker_thread_list = []
        for i in range(worker_thread_num):
            t = threading.Thread(target=worker, args=(task_queue, result_queue))
            worker_thread_list.append(t)
            
        database_thread = threading.Thread(target=db_writer, args=(result_queue, db))
        database_thread.setDaemon(True)
        database_thread.start()
        #
        for t in worker_thread_list:
            t.start()
            
        for t in worker_thread_list:
            t.join()
        database_thread.join()    
        logger.info("done")
    except Exception as e:
        print e
    finally:
        db.close()