feat(qmt): 优化定时重连机制避免与健康检查冲突

- 添加 is_scheduled_reconnecting 标志位协调重连逻辑
- 增强定时重连任务的日志前缀便于追踪
- 改进异常处理和资源清理日志
- 优化代码格式和注释
This commit is contained in:
2026-02-09 22:12:14 +08:00
parent 7ae3d16a5e
commit e407225d29
11 changed files with 746 additions and 677 deletions

View File

@@ -94,17 +94,17 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9547667 entries, 0 to 27281\n",
"Index: 9602310 entries, 0 to 27316\n",
"Data columns (total 2 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
" 0 ts_code object\n",
" 1 trade_date object\n",
"dtypes: object(2)\n",
"memory usage: 218.5+ MB\n",
"memory usage: 219.8+ MB\n",
"None\n",
"20260116\n",
"20260119\n"
"20260130\n",
"20260202\n"
]
}
],
@@ -121,7 +121,7 @@
" max_date = df['trade_date'].max()\n",
"\n",
"print(max_date)\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260201')\n",
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20260310')\n",
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
"start_date = min(trade_dates)\n",
@@ -144,22 +144,27 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20260130 完成\n",
"任务 20260129 完成\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20260127 完成\n",
"任务 20260128 完成\n",
"任务 20260126 完成\n",
"任务 20260123 完成\n",
"任务 20260122 完成\n",
"任务 20260121 完成\n",
"任务 20260120 完成\n",
"任务 20260119 完成\n"
"任务 20260309 完成\n",
"任务 20260310 完成\n",
"任务 20260305 完成\n",
"任务 20260306 完成\n",
"任务 20260303 完成\n",
"任务 20260304 完成\n",
"任务 20260302 完成\n",
"任务 20260227 完成\n",
"任务 20260226 完成\n",
"任务 20260225 完成\n",
"任务 20260224 完成\n",
"任务 20260213 完成\n",
"任务 20260212 完成\n",
"任务 20260211 完成\n",
"任务 20260210 完成\n",
"任务 20260209 完成\n",
"任务 20260206 完成\n",
"任务 20260205 完成\n",
"任务 20260204 完成\n",
"任务 20260203 完成\n",
"任务 20260202 完成\n"
]
}
],
@@ -230,58 +235,58 @@
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"0 301586.SZ 20260123 52.80 4.4195 6.0484 \n",
"1 600871.SH 20260123 2.63 3.5599 17.1067 \n",
"2 002067.SZ 20260123 5.91 9.5542 9.8833 \n",
"3 601225.SH 20260123 21.41 0.4692 1.3502 \n",
"4 688800.SH 20260123 90.22 4.3421 7.2546 \n",
"0 001389.SZ 20260206 99.50 6.1259 6.1259 \n",
"1 600841.SH 20260206 9.55 4.4177 14.0519 \n",
"2 300968.SZ 20260206 13.71 1.0258 2.1909 \n",
"3 300634.SZ 20260206 28.46 4.0862 6.8510 \n",
"4 300295.SZ 20260206 11.99 3.5950 3.8451 \n",
"... ... ... ... ... ... \n",
"27321 688659.SH 20260119 10.42 1.7256 3.1386 \n",
"27322 301021.SZ 20260119 55.92 5.8451 10.3979 \n",
"27323 300102.SZ 20260119 34.23 14.1090 22.0304 \n",
"27324 300088.SZ 20260119 6.36 1.9148 2.3308 \n",
"27325 002261.SZ 20260119 33.77 4.6567 5.1897 \n",
"27325 603766.SH 20260202 14.89 1.1630 1.9407 \n",
"27326 603408.SH 20260202 12.92 0.7963 3.0049 \n",
"27327 000004.SZ 20260202 11.99 0.2338 0.3161 \n",
"27328 601628.SH 20260202 48.34 0.1384 1.9210 \n",
"27329 301042.SZ 20260202 86.10 3.6207 5.4797 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"0 0.98 43.6343 68.1615 3.4308 6.9893 5.8003 0.9091 \n",
"1 1.91 78.9369 79.8327 5.2226 0.6148 0.6127 NaN \n",
"2 0.80 122.3105 140.3743 1.3170 1.5908 1.5491 NaN \n",
"3 1.02 9.2832 10.8507 2.1981 1.1272 1.1740 5.9699 \n",
"4 0.79 105.8709 61.3816 8.0916 7.6847 5.8974 0.2971 \n",
"0 0.83 62.6474 46.6770 11.6304 11.3424 8.6639 0.4819 \n",
"1 1.02 NaN NaN 4.1908 2.0493 2.4531 NaN \n",
"2 0.80 106.8945 225.1215 2.9871 4.6434 4.4246 0.3647 \n",
"3 0.68 55.7987 55.5119 4.4068 7.7725 7.2020 0.5590 \n",
"4 0.40 NaN NaN 2.0169 18.5210 23.1598 NaN \n",
"... ... ... ... ... ... ... ... \n",
"27321 1.01 NaN NaN 3.1071 2.6478 2.4387 NaN \n",
"27322 0.72 391.5181 198.4990 8.4757 19.1357 17.1491 0.1772 \n",
"27323 0.69 327.8681 232.9793 7.4375 12.9485 9.5346 0.1313 \n",
"27324 0.52 44.5231 45.4726 1.8179 1.4366 1.3961 0.9198 \n",
"27325 0.38 NaN NaN 16.3185 10.3586 13.1287 NaN \n",
"27325 1.04 27.2701 16.9932 3.2106 1.8177 1.5958 2.6864 \n",
"27326 0.99 11.9989 13.3289 1.7275 1.1550 1.1674 3.8700 \n",
"27327 0.05 NaN NaN 42.9590 16.0879 21.5107 NaN \n",
"27328 0.95 12.7771 8.0270 2.2069 2.5849 2.1373 1.4233 \n",
"27329 1.92 84.1572 534.3244 5.7108 8.6920 12.7424 NaN \n",
"\n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"0 0.3788 8.297550e+03 5.291107e+03 3866.1069 4.381107e+05 \n",
"1 NaN 1.895705e+06 1.354701e+06 281911.5987 4.985703e+06 \n",
"2 NaN 1.474854e+05 1.337604e+05 129305.3853 8.716386e+05 \n",
"3 5.4881 9.695000e+05 9.695000e+05 336903.9335 2.075700e+07 \n",
"4 0.2971 2.056743e+04 2.056743e+04 12310.0935 1.855594e+06 \n",
"0 0.4819 4.256875e+04 1.511580e+04 15115.7957 4.235591e+06 \n",
"1 NaN 1.387822e+05 1.043024e+05 32790.9410 1.325370e+06 \n",
"2 0.3647 4.133800e+04 4.133800e+04 19355.6537 5.667440e+05 \n",
"3 0.5590 4.512109e+04 4.345735e+04 25919.5274 1.284146e+06 \n",
"4 NaN 1.896137e+04 1.675259e+04 15662.9042 2.273468e+05 \n",
"... ... ... ... ... ... \n",
"27321 NaN 1.600000e+04 1.600000e+04 8796.6880 1.667200e+05 \n",
"27322 0.1772 1.528528e+04 1.527393e+04 8586.0802 8.547528e+05 \n",
"27323 0.1313 9.203339e+04 9.163399e+04 58685.2206 3.150303e+06 \n",
"27324 0.9198 2.497734e+05 2.485504e+05 204186.7350 1.588559e+06 \n",
"27325 NaN 1.259831e+05 1.145652e+05 102798.2760 4.254451e+06 \n",
"27325 4.0296 2.053542e+05 2.053542e+05 123065.9980 3.057724e+06 \n",
"27326 5.3406 4.475730e+04 4.475730e+04 11860.1633 5.782643e+05 \n",
"27327 NaN 1.323803e+04 1.262878e+04 9339.3580 1.587240e+05 \n",
"27328 1.4233 2.826470e+06 2.082353e+06 150000.0000 1.366316e+08 \n",
"27329 NaN 6.972358e+03 6.602083e+03 4362.2827 6.003200e+05 \n",
"\n",
" circ_mv is_st \n",
"0 2.793704e+05 False \n",
"1 3.562864e+06 False \n",
"2 7.905239e+05 False \n",
"3 2.075700e+07 False \n",
"4 1.855594e+06 False \n",
"0 1.504022e+06 False \n",
"1 9.960884e+05 False \n",
"2 5.667440e+05 False \n",
"3 1.236796e+06 False \n",
"4 2.008635e+05 False \n",
"... ... ... \n",
"27321 1.667200e+05 False \n",
"27322 8.541180e+05 False \n",
"27323 3.136631e+06 False \n",
"27324 1.580780e+06 False \n",
"27325 3.868868e+06 False \n",
"27325 3.057724e+06 False \n",
"27326 5.782643e+05 False \n",
"27327 1.514190e+05 True \n",
"27328 1.006609e+08 False \n",
"27329 5.684393e+05 False \n",
"\n",
"[27326 rows x 19 columns]\n"
"[27330 rows x 19 columns]\n"
]
}
],
@@ -306,58 +311,45 @@
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"54 000615.SZ 20260123 3.32 0.7420 0.9114 \n",
"60 600228.SH 20260123 5.63 3.4275 4.8943 \n",
"88 000430.SZ 20260123 7.30 1.4748 2.3665 \n",
"96 603389.SH 20260123 48.20 0.8319 2.1042 \n",
"110 000752.SZ 20260123 10.96 1.4753 1.8177 \n",
"52 002713.SZ 20260206 9.52 4.6530 6.2693 \n",
"107 000609.SZ 20260206 8.23 0.2427 0.3213 \n",
"113 300052.SZ 20260206 13.86 3.5983 4.3260 \n",
"116 600624.SH 20260206 5.31 0.6260 0.8827 \n",
"119 300555.SZ 20260206 14.31 1.4520 1.7474 \n",
"... ... ... ... ... ... \n",
"27130 002586.SZ 20260119 4.68 1.7164 2.9874 \n",
"27154 600265.SH 20260119 19.29 0.2879 0.8066 \n",
"27193 688287.SH 20260119 6.44 0.9802 1.9881 \n",
"27195 300338.SZ 20260119 3.61 1.4127 1.5675 \n",
"27223 000669.SZ 20260119 2.79 1.1437 1.4424 \n",
"27182 000668.SZ 20260202 13.85 3.5014 5.9253 \n",
"27240 003032.SZ 20260202 6.37 2.2066 3.1223 \n",
"27305 000691.SZ 20260202 8.30 1.9108 2.2317 \n",
"27312 300167.SZ 20260202 4.65 2.1705 2.3552 \n",
"27327 000004.SZ 20260202 11.99 0.2338 0.3161 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"54 0.72 NaN NaN NaN 5.4217 5.8063 NaN \n",
"60 1.60 NaN NaN 5.6813 9.6204 6.3997 NaN \n",
"88 1.11 NaN NaN 22.0731 13.6938 12.9047 NaN \n",
"96 0.95 NaN NaN 54.1434 62.5718 60.6578 NaN \n",
"110 0.96 110.3513 19.6504 4.7026 6.8589 6.4652 NaN \n",
"... ... ... ... ... ... ... ... \n",
"27130 1.55 NaN NaN 1.7970 2.1568 2.2158 NaN \n",
"27154 0.79 NaN NaN 288.1848 5.6010 10.1170 NaN \n",
"27193 0.59 NaN NaN 3.1120 26.5172 26.3673 NaN \n",
"27195 0.58 NaN NaN NaN 8.5110 10.1280 NaN \n",
"27223 0.84 NaN NaN NaN 1.4522 1.5001 NaN \n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio dv_ttm \\\n",
"52 1.02 NaN NaN NaN 6.9890 12.8336 NaN NaN \n",
"107 0.05 NaN NaN NaN 8.0655 15.8232 NaN NaN \n",
"113 1.51 NaN NaN 9.6004 15.9784 18.8191 NaN NaN \n",
"116 0.60 NaN NaN 5.7984 5.5900 5.4551 NaN NaN \n",
"119 1.24 NaN NaN 6.0224 16.1604 18.5602 NaN NaN \n",
"... ... .. ... ... ... ... ... ... \n",
"27182 1.32 NaN NaN 2.8792 15.2387 7.2708 NaN NaN \n",
"27240 1.15 NaN NaN 2.0451 10.4354 7.6772 NaN NaN \n",
"27305 0.69 NaN NaN NaN 9.0850 9.0002 NaN NaN \n",
"27312 0.71 NaN 134.128 63.0032 4.3517 3.8269 NaN NaN \n",
"27327 0.05 NaN NaN 42.9590 16.0879 21.5107 NaN NaN \n",
"\n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"54 NaN 178749.2693 92531.6398 75331.7788 5.934476e+05 \n",
"60 NaN 41667.2427 41603.7177 29135.5053 2.345866e+05 \n",
"88 NaN 80963.5372 37055.6486 23092.8156 5.910338e+05 \n",
"96 NaN 26275.2000 26275.2000 10387.7487 1.266465e+06 \n",
"110 NaN 26375.8491 26375.8491 21407.3042 2.890793e+05 \n",
"... ... ... ... ... ... \n",
"27130 NaN 114422.3714 108751.8003 62484.0799 5.354967e+05 \n",
"27154 NaN 12980.0000 12980.0000 4633.1947 2.503842e+05 \n",
"27193 NaN 37051.5600 37051.5600 18267.2898 2.386120e+05 \n",
"27195 NaN 40262.4692 34936.1242 31485.3582 1.453475e+05 \n",
"27223 NaN 68040.8797 68040.8797 53950.9653 1.898341e+05 \n",
" total_share float_share free_share total_mv circ_mv is_st \n",
"52 95140.5184 52650.0831 39075.6229 905737.7352 501228.7911 True \n",
"107 29926.5522 29105.8272 21991.3472 246295.5246 239540.9579 True \n",
"113 26185.8710 26185.1210 21780.6332 362936.1721 362925.7771 True \n",
"116 67934.6942 67934.6942 48180.1806 360733.2262 360733.2262 True \n",
"119 20000.0000 19798.4863 16450.7792 286200.0000 283316.3390 True \n",
"... ... ... ... ... ... ... \n",
"27182 14684.1890 14684.1890 8677.2104 203376.0177 203376.0177 True \n",
"27240 40244.7500 27621.9885 19520.7308 256359.0575 175952.0667 True \n",
"27305 48490.5000 32327.0000 27679.8405 402471.1500 268314.1000 True \n",
"27312 38937.4000 35889.3250 33073.6637 181058.9100 166885.3613 True \n",
"27327 13238.0282 12628.7768 9339.3580 158723.9581 151419.0338 True \n",
"\n",
" circ_mv is_st \n",
"54 3.072050e+05 True \n",
"60 2.342289e+05 True \n",
"88 2.705062e+05 True \n",
"96 1.266465e+06 True \n",
"110 2.890793e+05 True \n",
"... ... ... \n",
"27130 5.089584e+05 True \n",
"27154 2.503842e+05 True \n",
"27193 2.386120e+05 True \n",
"27195 1.261194e+05 True \n",
"27223 1.898341e+05 True \n",
"\n",
"[886 rows x 19 columns]\n"
"[872 rows x 19 columns]\n"
]
}
],
@@ -407,7 +399,7 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9574993 entries, 0 to 27325\n",
"Index: 9629640 entries, 0 to 27329\n",
"Data columns (total 3 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
@@ -415,7 +407,7 @@
" 1 trade_date object\n",
" 2 is_st bool \n",
"dtypes: bool(1), object(2)\n",
"memory usage: 228.3+ MB\n",
"memory usage: 229.6+ MB\n",
"None\n"
]
}