mns-scheduler 1.2.4.8__py3-none-any.whl → 1.2.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mns-scheduler might be problematic. Click here for more details.
- mns_scheduler/db/real_time_task_check.py +15 -15
- mns_scheduler/db/script/sync/remote_data_sync_to_local.py +1 -0
- mns_scheduler/db/script/update/__init__.py +7 -0
- mns_scheduler/db/script/update/update_col_field.py +36 -0
- mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +5 -5
- mns_scheduler/k_line/test/k_line_info_clean_his_data.py +1 -1
- mns_scheduler/zt/script/fix_error_deal_day.py +41 -0
- mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +1 -1
- {mns_scheduler-1.2.4.8.dist-info → mns_scheduler-1.2.5.1.dist-info}/METADATA +1 -1
- {mns_scheduler-1.2.4.8.dist-info → mns_scheduler-1.2.5.1.dist-info}/RECORD +12 -9
- {mns_scheduler-1.2.4.8.dist-info → mns_scheduler-1.2.5.1.dist-info}/WHEEL +0 -0
- {mns_scheduler-1.2.4.8.dist-info → mns_scheduler-1.2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -15,17 +15,18 @@ from datetime import datetime
|
|
|
15
15
|
import mns_common.utils.date_handle_util as date_handle_util
|
|
16
16
|
from mns_common.db.MongodbUtil import MongodbUtil
|
|
17
17
|
import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
|
|
18
|
+
import time
|
|
18
19
|
|
|
19
20
|
mongodb_util = MongodbUtil('27017')
|
|
20
21
|
|
|
21
22
|
MAX_NUMBER_KEY = 'max_number_key'
|
|
22
|
-
#
|
|
23
|
+
# 定时任务 python名称
|
|
23
24
|
REAL_TIME_SCHEDULER_NAME = "sync_realtime_quotes_task"
|
|
24
|
-
#
|
|
25
|
+
# 实时同步 python名称
|
|
25
26
|
REAL_TIME_TASK_NAME = "realtime_quotes_now_sync"
|
|
26
|
-
#
|
|
27
|
+
# 实时同步 bat
|
|
27
28
|
REAL_TIME_TASK_NAME_PATH = 'H:\\real_time_task.bat'
|
|
28
|
-
# 定时任务
|
|
29
|
+
# 定时任务 bat
|
|
29
30
|
REAL_TIME_SCHEDULER_NAME_PATH = 'H:\\real_time_scheduler.bat'
|
|
30
31
|
|
|
31
32
|
|
|
@@ -52,13 +53,15 @@ def check_max_number():
|
|
|
52
53
|
# 实时行情数据同步状态check
|
|
53
54
|
def run_check_real_time_data_sync_status():
|
|
54
55
|
now_date = datetime.now()
|
|
55
|
-
hour =
|
|
56
|
-
minute =
|
|
56
|
+
hour = now_date.hour
|
|
57
|
+
minute = now_date.minute
|
|
58
|
+
second = now_date.second
|
|
57
59
|
str_day = now_date.strftime('%Y-%m-%d')
|
|
58
60
|
|
|
59
61
|
if bool(1 - trade_date_common_service_api.is_trade_day(str_day)):
|
|
60
62
|
return False
|
|
61
63
|
|
|
64
|
+
# 关闭上午定时同步
|
|
62
65
|
if hour == 11 and minute == 31:
|
|
63
66
|
all_cmd_processes = cmd_util.get_all_process()
|
|
64
67
|
if data_frame_util.is_empty(all_cmd_processes):
|
|
@@ -74,22 +77,19 @@ def run_check_real_time_data_sync_status():
|
|
|
74
77
|
except BaseException as e:
|
|
75
78
|
logger.error("关闭实时行情任务异常:{}", e)
|
|
76
79
|
|
|
80
|
+
# 重开下午定时同步
|
|
77
81
|
if hour == 12 and minute == 59:
|
|
78
82
|
all_cmd_processes = cmd_util.get_all_process()
|
|
79
83
|
if data_frame_util.is_empty(all_cmd_processes):
|
|
80
84
|
return False
|
|
81
85
|
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
82
86
|
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
83
|
-
return False
|
|
84
|
-
for match_task_one in all_cmd_processes_real_time_task.itertuples():
|
|
85
|
-
try:
|
|
86
|
-
processes_pid = match_task_one.process_pid
|
|
87
|
-
# 关闭当前进程
|
|
88
|
-
cmd_util.kill_process_by_pid(processes_pid)
|
|
89
|
-
except BaseException as e:
|
|
90
|
-
logger.error("关闭实时行情任务异常:{}", e)
|
|
91
87
|
# 重开定时任务
|
|
92
|
-
|
|
88
|
+
cmd_util.open_bat_file(REAL_TIME_SCHEDULER_NAME_PATH)
|
|
89
|
+
# 防止太快重开多个
|
|
90
|
+
time.sleep(3)
|
|
91
|
+
|
|
92
|
+
# 普通轮训
|
|
93
93
|
|
|
94
94
|
if bool(1 - date_handle_util.is_trade_time(now_date)):
|
|
95
95
|
return False
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
file_path = os.path.abspath(__file__)
|
|
5
|
+
end = file_path.index('mns') + 16
|
|
6
|
+
project_path = file_path[0:end]
|
|
7
|
+
sys.path.append(project_path)
|
|
8
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
9
|
+
from loguru import logger
|
|
10
|
+
|
|
11
|
+
mongodb_util_27017 = MongodbUtil('27017')
|
|
12
|
+
mongodb_util_27019 = MongodbUtil('27019')
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def update_col_data():
|
|
16
|
+
query = {"$and": [{'trade_date': {'$lte': '2024-05-23'}},
|
|
17
|
+
{'trade_date': {'$gte': '2022-07-02'}}]}
|
|
18
|
+
trade_date_list_df = mongodb_util_27017.find_query_data('trade_date_list', query)
|
|
19
|
+
trade_date_list_df = trade_date_list_df.sort_values(by=['trade_date'], ascending=True)
|
|
20
|
+
for trade_one in trade_date_list_df.itertuples():
|
|
21
|
+
col_name = 'realtime_quotes_now_' + trade_one.trade_date
|
|
22
|
+
new_values = {'$unset': {
|
|
23
|
+
'classification': '',
|
|
24
|
+
'medium_order_net_inflow': '',
|
|
25
|
+
'small_order_net_inflow': '',
|
|
26
|
+
'str_day': '',
|
|
27
|
+
'list_date': '',
|
|
28
|
+
'amount_level': '',
|
|
29
|
+
'name': '', 'industry': '', 'concept': ''}}
|
|
30
|
+
|
|
31
|
+
mongodb_util_27019.update_many({}, new_values, col_name)
|
|
32
|
+
logger.info("完成集合数据更新:{}", col_name)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
if __name__ == '__main__':
|
|
36
|
+
update_col_data()
|
|
@@ -200,23 +200,23 @@ def calculate_exchange_and_k_line_avg_param(stock_qfq_daily):
|
|
|
200
200
|
|
|
201
201
|
# 收盘价格与均线差值
|
|
202
202
|
stock_qfq_daily['close_difference_five'] = round(
|
|
203
|
-
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_five']) / stock_qfq_daily['
|
|
203
|
+
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_five']) / stock_qfq_daily['avg_five'],
|
|
204
204
|
2)
|
|
205
205
|
|
|
206
206
|
stock_qfq_daily['close_difference_ten'] = round(
|
|
207
|
-
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_ten']) / stock_qfq_daily['
|
|
207
|
+
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_ten']) / stock_qfq_daily['avg_ten'],
|
|
208
208
|
2)
|
|
209
209
|
|
|
210
210
|
stock_qfq_daily['close_difference_twenty'] = round(
|
|
211
|
-
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_twenty']) / stock_qfq_daily['
|
|
211
|
+
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_twenty']) / stock_qfq_daily['avg_twenty'],
|
|
212
212
|
2)
|
|
213
213
|
|
|
214
214
|
stock_qfq_daily['close_difference_thirty'] = round(
|
|
215
|
-
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_thirty']) / stock_qfq_daily['
|
|
215
|
+
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_thirty']) / stock_qfq_daily['avg_thirty'],
|
|
216
216
|
2)
|
|
217
217
|
|
|
218
218
|
stock_qfq_daily['close_difference_sixty'] = round(
|
|
219
|
-
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_sixty']) / stock_qfq_daily['
|
|
219
|
+
100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_sixty']) / stock_qfq_daily['avg_sixty'],
|
|
220
220
|
2)
|
|
221
221
|
|
|
222
222
|
stock_qfq_daily = stock_qfq_daily[[
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
file_path = os.path.abspath(__file__)
|
|
5
|
+
end = file_path.index('mns') + 16
|
|
6
|
+
project_path = file_path[0:end]
|
|
7
|
+
sys.path.append(project_path)
|
|
8
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
9
|
+
from loguru import logger
|
|
10
|
+
import mns_common.utils.date_handle_util as date_handle_util
|
|
11
|
+
mongodb_util = MongodbUtil('27017')
|
|
12
|
+
|
|
13
|
+
from mns_scheduler.db.script.sync.remote_mongo_util import RemoteMongodbUtil
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
remote_mongodb_util = RemoteMongodbUtil('27017')
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def fix_error_deal_days(db_name):
|
|
20
|
+
realtime_quotes_now_zt_new_kc_open_df = mongodb_util.find_query_data(db_name, {})
|
|
21
|
+
realtime_quotes_now_zt_new_kc_open_df['id_key'] = realtime_quotes_now_zt_new_kc_open_df['_id']
|
|
22
|
+
for stock_one in realtime_quotes_now_zt_new_kc_open_df.itertuples():
|
|
23
|
+
try:
|
|
24
|
+
symbol = stock_one.symbol
|
|
25
|
+
str_day = stock_one.str_day
|
|
26
|
+
query = {'symbol': symbol, 'date': {"$lt": date_handle_util.no_slash_date(str_day)}}
|
|
27
|
+
deal_days = mongodb_util.count(query, 'stock_qfq_daily')
|
|
28
|
+
new_values = {"$set": {"deal_days": deal_days}}
|
|
29
|
+
id_key = stock_one.id_key
|
|
30
|
+
update_query = {'_id': id_key}
|
|
31
|
+
mongodb_util.update_many(update_query, new_values, db_name)
|
|
32
|
+
logger.info("更新到:{},{}", symbol, str_day)
|
|
33
|
+
except BaseException as e:
|
|
34
|
+
logger.error("出现异常:{},{},{}", symbol, str_day, e)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
if __name__ == '__main__':
|
|
38
|
+
# db_name_0 = 'realtime_quotes_now_zt_new_kc_open'
|
|
39
|
+
db_name_01 = 'stock_high_chg_pool'
|
|
40
|
+
# fix_error_deal_days(db_name_0)
|
|
41
|
+
fix_error_deal_days(db_name_01)
|
|
@@ -35,14 +35,16 @@ mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.p
|
|
|
35
35
|
mns_scheduler/db/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
36
36
|
mns_scheduler/db/col_move_service.py,sha256=tyWth-68MVs3lc6PTW-2SygD98_4_qUaCYZ6tX1JUp8,4230
|
|
37
37
|
mns_scheduler/db/db_status.py,sha256=e5eW5ZSm5J7tHvmxxhFmFdbZb2_oB_SAcdcFqc4KDmw,733
|
|
38
|
-
mns_scheduler/db/real_time_task_check.py,sha256=
|
|
38
|
+
mns_scheduler/db/real_time_task_check.py,sha256=bf3Ov6fLL332u7yWyDC3ZLvVWhM6W9i47LapkfP1w7c,4902
|
|
39
39
|
mns_scheduler/db/script/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
40
40
|
mns_scheduler/db/script/col_move_script.py,sha256=0WNv0xbnPPKTME2_WMEPSGNT0DUWC7hS4mJ2VeNgc08,1163
|
|
41
41
|
mns_scheduler/db/script/sync/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
42
42
|
mns_scheduler/db/script/sync/local_mongo_util.py,sha256=MFG-S7aUBLKe4tkhKNklUzpiZef2n078YXd39dfOMy0,7540
|
|
43
|
-
mns_scheduler/db/script/sync/remote_data_sync_to_local.py,sha256=
|
|
43
|
+
mns_scheduler/db/script/sync/remote_data_sync_to_local.py,sha256=2iGs-WTPt9hJK9IJLX5ChUTaWiKEpx0MikBsF-6Mp_o,1673
|
|
44
44
|
mns_scheduler/db/script/sync/remote_mongo_util.py,sha256=-BCR2zeQ9z0zeZg6wO0aCS4bGnsGIohFRH7QR8XXJSo,10966
|
|
45
45
|
mns_scheduler/db/script/sync/sync_hui_ce_test_data.py,sha256=Ei7RDlLbdUvywW901uxxvaHpqrJZFxCQX4FKFHpyoNc,2062
|
|
46
|
+
mns_scheduler/db/script/update/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
47
|
+
mns_scheduler/db/script/update/update_col_field.py,sha256=2XeiKodVgR19IgJKMXZmM7MOLgeUyli15qo58gtYHY8,1274
|
|
46
48
|
mns_scheduler/debt/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
47
49
|
mns_scheduler/debt/kzz_bond_info_sync.py,sha256=3o0Y4FBxP3AOXwf7Z7jVO1N_DcqxeOVqcgMM3y7E4uo,1336
|
|
48
50
|
mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -69,7 +71,7 @@ mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
|
|
|
69
71
|
mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=2GgRc9Nb9wXMueoZhl9egYzjQP_NPhBCvj-XYcTlG9w,1238
|
|
70
72
|
mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=ey6xTXAxxXh8_8cPzsWmUtVmG8Sd7jXFbpRpTrFrLDo,7622
|
|
71
73
|
mns_scheduler/k_line/clean/daily/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
72
|
-
mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=
|
|
74
|
+
mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=lT_KOhph9qLQGBoy7THU7SuPLQLQQlaNzTf2cMKnnNY,18404
|
|
73
75
|
mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=BOzE5smjgJyUPdNvV4CUmN2phHT1VCtusosq7uhrGCw,6654
|
|
74
76
|
mns_scheduler/k_line/clean/week_month/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
75
77
|
mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py,sha256=4qInTtReDd77Jzb7ngme8yXHRd6INSbSCq84lhS3ScI,4862
|
|
@@ -80,7 +82,7 @@ mns_scheduler/k_line/sync/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UM
|
|
|
80
82
|
mns_scheduler/k_line/sync/bfq_k_line_sync.py,sha256=i2NNdp4uVa-kiqQvOaY6odd8-DmQtlejeMXeVklKOIs,4067
|
|
81
83
|
mns_scheduler/k_line/sync/daily_week_month_line_sync.py,sha256=SHAvMkDW-2TKEC4wWkMdiOQWa4Ktc0Umm59OlceK1dg,5795
|
|
82
84
|
mns_scheduler/k_line/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
83
|
-
mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=
|
|
85
|
+
mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=6_KKdFSRdkA9LnkkCc72Y1ILKdLY-VuKvMlHBetSSU8,1173
|
|
84
86
|
mns_scheduler/kpl/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
85
87
|
mns_scheduler/kpl/selection/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
86
88
|
mns_scheduler/kpl/selection/index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -138,8 +140,9 @@ mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py,sha256=IvP8t
|
|
|
138
140
|
mns_scheduler/zt/open_data/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
139
141
|
mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py,sha256=wZiqOre2UK9CxIR7dDk11DmqRY3n2_eE2pe0JfmMcjk,11616
|
|
140
142
|
mns_scheduler/zt/script/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
143
|
+
mns_scheduler/zt/script/fix_error_deal_day.py,sha256=n54pom24wCQAiHKjnVZACizb97iGWaEYtADM9R1z69g,1624
|
|
141
144
|
mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=aTrYgshcccoHv-6yoxwbO6GRtntOfeIQjfjEE_vrz3k,5571
|
|
142
|
-
mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=
|
|
145
|
+
mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=umPuYaXBXVUWkiGT-7svUuHMKCqjcRpzd-3JZZU3nwk,1685
|
|
143
146
|
mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=bhoIGDWTI3w0YKVfIAVNHWpUrYqJYDMGPt-1i3d_Zmw,1850
|
|
144
147
|
mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
145
148
|
mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=A5YiAWYdbAxhlTTJ8pOStZrBbfnLF_RhntyYvN0neO8,11109
|
|
@@ -147,7 +150,7 @@ mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=Sy39T-yFwLSIIoSZqQzS-6-W
|
|
|
147
150
|
mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=1uoiR2Uw46kDfjkvNg2US5rd_4OIkYO3872gIJOufUY,2135
|
|
148
151
|
mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
149
152
|
mns_scheduler/zz_task/data_sync_task.py,sha256=Muq8lILGn6ShNoaJc97f5lU65Ql8nW63NlxUjGnIZOA,21669
|
|
150
|
-
mns_scheduler-1.2.
|
|
151
|
-
mns_scheduler-1.2.
|
|
152
|
-
mns_scheduler-1.2.
|
|
153
|
-
mns_scheduler-1.2.
|
|
153
|
+
mns_scheduler-1.2.5.1.dist-info/METADATA,sha256=D0U49bXPUdkY2wcsByluL6nkOLcMBA2_EFsG0FixBtQ,64
|
|
154
|
+
mns_scheduler-1.2.5.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
155
|
+
mns_scheduler-1.2.5.1.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
|
|
156
|
+
mns_scheduler-1.2.5.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|