mns-common 1.3.5.5__py3-none-any.whl → 1.3.5.6__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-common might be problematic. Click here for more details.
- mns_common/component/task/__init__.py +7 -0
- mns_common/component/task/real_time_data_sync_check.py +97 -0
- {mns_common-1.3.5.5.dist-info → mns_common-1.3.5.6.dist-info}/METADATA +1 -1
- {mns_common-1.3.5.5.dist-info → mns_common-1.3.5.6.dist-info}/RECORD +6 -4
- {mns_common-1.3.5.5.dist-info → mns_common-1.3.5.6.dist-info}/WHEEL +0 -0
- {mns_common-1.3.5.5.dist-info → mns_common-1.3.5.6.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
|
|
9
|
+
import datetime
|
|
10
|
+
import mns_common.utils.date_handle_util as date_util
|
|
11
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
12
|
+
import mns_common.constant.db_name_constant as db_name_constant
|
|
13
|
+
import mns_common.utils.cmd_util as cmd_util
|
|
14
|
+
import mns_common.utils.data_frame_util as data_frame_util
|
|
15
|
+
import time
|
|
16
|
+
from loguru import logger
|
|
17
|
+
|
|
18
|
+
mongodb_util = MongodbUtil('27017')
|
|
19
|
+
REAL_TIME_SCHEDULER_NAME = "realtime_quotes_now_sync"
|
|
20
|
+
# 实时同步 bat
|
|
21
|
+
REAL_TIME_TASK_NAME_PATH = 'H:\\real_time_task.bat'
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# 获取同步任务pid
|
|
25
|
+
def get_real_time_quotes_task(all_cmd_processes):
|
|
26
|
+
return all_cmd_processes[
|
|
27
|
+
(all_cmd_processes['total_info'].str.contains(REAL_TIME_SCHEDULER_NAME, case=False, na=False))
|
|
28
|
+
| (all_cmd_processes['total_info'].str.contains(REAL_TIME_SCHEDULER_NAME, case=False, na=False))]
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# 关闭实时行情任务
|
|
32
|
+
def real_time_sync_task_close():
|
|
33
|
+
all_cmd_processes = cmd_util.get_all_process()
|
|
34
|
+
if data_frame_util.is_empty(all_cmd_processes):
|
|
35
|
+
return False
|
|
36
|
+
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
37
|
+
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
38
|
+
return False
|
|
39
|
+
for match_task_one in all_cmd_processes_real_time_task.itertuples():
|
|
40
|
+
try:
|
|
41
|
+
processes_pid = match_task_one.process_pid
|
|
42
|
+
# 关闭当前进程
|
|
43
|
+
cmd_util.kill_process_by_pid(processes_pid)
|
|
44
|
+
except BaseException as e:
|
|
45
|
+
logger.error("关闭实时行情任务异常:{}", e)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# 重开定时任务同步
|
|
49
|
+
def real_time_sync_task_open():
|
|
50
|
+
all_cmd_processes = cmd_util.get_all_process()
|
|
51
|
+
if data_frame_util.is_empty(all_cmd_processes):
|
|
52
|
+
return False
|
|
53
|
+
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
54
|
+
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
55
|
+
# 重开定时任务
|
|
56
|
+
cmd_util.open_bat_file(REAL_TIME_TASK_NAME_PATH)
|
|
57
|
+
# 防止太快重开多个
|
|
58
|
+
time.sleep(3)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def query_data_exist(str_day):
|
|
62
|
+
col_name = db_name_constant.REAL_TIME_QUOTES_NOW + '_' + str_day
|
|
63
|
+
query = {'symbol': '000001'}
|
|
64
|
+
return mongodb_util.exist_data_query(col_name, query)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def exist_sync_task():
|
|
68
|
+
all_cmd_processes = cmd_util.get_all_process()
|
|
69
|
+
if data_frame_util.is_empty(all_cmd_processes):
|
|
70
|
+
return False
|
|
71
|
+
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
72
|
+
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
73
|
+
return False
|
|
74
|
+
else:
|
|
75
|
+
return True
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def check_data_sync_task_status():
|
|
79
|
+
now_date = datetime.datetime.now()
|
|
80
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
81
|
+
while True:
|
|
82
|
+
if bool(date_util.is_trade_time(now_date)):
|
|
83
|
+
if bool(1 - query_data_exist(str_day)) or bool(1 - exist_sync_task()):
|
|
84
|
+
real_time_sync_task_open()
|
|
85
|
+
time.sleep(2)
|
|
86
|
+
elif bool(date_util.is_no_trade_time(now_date)):
|
|
87
|
+
break
|
|
88
|
+
else:
|
|
89
|
+
time.sleep(5)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
if __name__ == '__main__':
|
|
93
|
+
# check_data_sync_task_status()
|
|
94
|
+
d = query_data_exist('2025-03-27')
|
|
95
|
+
print(d)
|
|
96
|
+
s = exist_sync_task()
|
|
97
|
+
print(s)
|
|
@@ -111,6 +111,8 @@ mns_common/component/redis_msg/redis_msg_publish_service.py,sha256=jcNEfQpARCPyl
|
|
|
111
111
|
mns_common/component/self_choose/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
112
112
|
mns_common/component/self_choose/black_list_service_api.py,sha256=BUySMNHDM3OzXe3g7WGola8_yGZ0ub_fjHj7e6-eB7s,1993
|
|
113
113
|
mns_common/component/self_choose/self_choose_service_api.py,sha256=v-ThYn5OMva-ciawOFaGi_joxDzLp5HYUHuIP7wz5Z8,1456
|
|
114
|
+
mns_common/component/task/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
115
|
+
mns_common/component/task/real_time_data_sync_check.py,sha256=hvsciFQ5k-RGM0QONBmIHlT_rr6_7ruVltl2rvE27LA,3379
|
|
114
116
|
mns_common/component/tfp/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
115
117
|
mns_common/component/tfp/stock_tfp_api.py,sha256=iYCBA4DjZZ1ioDKuB8z_uUEuhL0eWPY7K9QkQl9yrik,2135
|
|
116
118
|
mns_common/component/trade_date/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
@@ -138,7 +140,7 @@ mns_common/utils/date_handle_util.py,sha256=XS-MyA8_7k35LOCFAYOHgVcVkMft_Kc4Wa9U
|
|
|
138
140
|
mns_common/utils/db_util.py,sha256=hSmfNAN4vEeEaUva6_cicZEhb2jSnib-Gvk2reke1vc,2590
|
|
139
141
|
mns_common/utils/file_util.py,sha256=egWu6PenGPRp_ixrNTHKarT4dAnOT6FETR82EHUZJnQ,1042
|
|
140
142
|
mns_common/utils/ip_util.py,sha256=UTcYfz_uytB__6nlBf7T-izuI7hi4XdB6ET0sJgEel4,969
|
|
141
|
-
mns_common-1.3.5.
|
|
142
|
-
mns_common-1.3.5.
|
|
143
|
-
mns_common-1.3.5.
|
|
144
|
-
mns_common-1.3.5.
|
|
143
|
+
mns_common-1.3.5.6.dist-info/METADATA,sha256=jGB6eDRU4ofuSWrUX-8hmqgGoPqGeLIrV1pCu5eRdaQ,61
|
|
144
|
+
mns_common-1.3.5.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
145
|
+
mns_common-1.3.5.6.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
|
|
146
|
+
mns_common-1.3.5.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|