|
@@ -4,6 +4,7 @@ import pandas as pd
|
|
|
import math
|
|
|
from sqlalchemy import create_engine
|
|
|
import multiprocessing as mp
|
|
|
+from apscheduler.schedulers.blocking import BlockingScheduler
|
|
|
# pd.set_option('display.max_rows', None) # 设置显示最大行
|
|
|
|
|
|
|
|
@@ -15,6 +16,7 @@ cpu_count = mp.cpu_count()
|
|
|
|
|
|
|
|
|
def to_sql(stock_list, engine):
|
|
|
+ print(dt.now(), '开始循环入库!')
|
|
|
for stock in stock_list:
|
|
|
print(stock)
|
|
|
data = xtdata.get_market_data(field, [stock], '1d', end_time='', count=-1, dividend_type='back')
|
|
@@ -33,6 +35,11 @@ def to_sql(stock_list, engine):
|
|
|
def to_df(key,valus,engine):
|
|
|
print('to_df')
|
|
|
pass
|
|
|
+def download_data(stocks, engine):
|
|
|
+ print(dt.now(), '开始下载!')
|
|
|
+ xtdata.download_history_data2(stock_list=stocks, period='1d', start_time='', end_time='')
|
|
|
+ print(dt.now(), '下载完成,准备入库!')
|
|
|
+ to_sql(stocks, engine)
|
|
|
|
|
|
sttime = dt.now()
|
|
|
|
|
@@ -44,11 +51,19 @@ if __name__ == '__main__':
|
|
|
step = math.ceil(len(stocks) / cpu_count)
|
|
|
engine = create_engine('mysql+pymysql://root:r6kEwqWU9!v3@localhost:3307/qmt_stocks?charset=utf8')
|
|
|
|
|
|
- num = xtdata.download_history_data2(stock_list=stocks, period='1d', start_time='', end_time='')
|
|
|
+
|
|
|
# num = 1
|
|
|
- if num:
|
|
|
- print(dt.now() - sttime, '更新完成,准备入库!', )
|
|
|
- to_sql(stocks, engine)
|
|
|
+ sched = BlockingScheduler()
|
|
|
+ sched.add_job(func=download_data, trigger='cron', hour='22', minute='45', args=[stocks, engine])
|
|
|
+ try:
|
|
|
+ sched.start()
|
|
|
+ except (KeyboardInterrupt, SystemExit):
|
|
|
+ pass
|
|
|
+ print(dt.now() - sttime, '更新完成,准备入库!')
|
|
|
+ # to_sql(stocks, engine)
|
|
|
+ # if sched.add_job(download_data, 'cron', hour=22,minute=00):
|
|
|
+ # print(dt.now() - sttime, '更新完成,准备入库!' )
|
|
|
+ # to_sql(stocks, engine)
|
|
|
# p_list = []
|
|
|
# # data = xtdata.get_market_data(field, stocks, '1d', end_time='', count=-1, dividend_type='back')
|
|
|
# for i in range(0, len(stocks), step):
|