feat: 添加 Redis 消息展示功能到监控面板

- 新增 /api/messages API 接口,支持从 Redis Stream 读取消息
- 支持按策略筛选消息和分页展示
- 前端新增消息列表卡片,展示时间、策略、股票代码、动作、价格和状态
- 自动判断消息处理状态(已处理/待处理)
- 消息列表每30秒自动刷新,支持手动刷新
This commit is contained in:
2026-03-01 22:06:42 +08:00
parent e88ba5bcf9
commit 7bb0a0537b
14 changed files with 1814 additions and 806 deletions

View File

@@ -94,17 +94,17 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9629640 entries, 0 to 27329\n",
"Index: 9656995 entries, 0 to 27354\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: 220.4+ MB\n",
"memory usage: 221.0+ MB\n",
"None\n",
"20260206\n",
"20260209\n"
"20260213\n",
"20260224\n"
]
}
],
@@ -144,22 +144,17 @@
"name": "stdout",
"output_type": "stream",
"text": [
"任务 20260309 完成\n",
"任务 20260310 完成\n",
"任务 20260309 完成\n",
"任务 20260306 完成\n",
"任务 20260305 完成\n",
"任务 20260303 完成\n",
"任务 20260304 完成\n",
"任务 20260303 完成\n",
"任务 20260302 完成\n",
"任务 20260227 完成\n",
"任务 20260226 完成\n",
"任务 20260225 完成\n",
"任务 20260224 完成\n",
"任务 20260213 完成\n",
"任务 20260212 完成\n",
"任务 20260211 完成\n",
"任务 20260210 完成\n",
"任务 20260209 完成\n"
"任务 20260224 完成\n"
]
}
],
@@ -230,58 +225,58 @@
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"0 001301.SZ 20260213 78.24 1.0939 1.3757 \n",
"1 301050.SZ 20260213 53.61 2.8931 3.6211 \n",
"2 000829.SZ 20260213 10.58 2.2336 3.5271 \n",
"3 688498.SH 20260213 746.98 3.4302 4.7903 \n",
"4 920510.BJ 20260213 18.30 2.8519 4.1749 \n",
"0 300819.SZ 20260227 58.92 9.7287 24.1597 \n",
"1 001378.SZ 20260227 25.85 3.5842 3.5842 \n",
"2 688505.SH 20260227 8.68 0.4993 1.1491 \n",
"3 605158.SH 20260227 8.58 0.8147 2.9625 \n",
"4 688193.SH 20260227 54.23 0.9385 1.7187 \n",
"... ... ... ... ... ... \n",
"27350 000065.SZ 20260209 12.07 1.7167 3.2552 \n",
"27351 920249.BJ 20260209 13.86 3.2235 3.3218 \n",
"27352 300824.SZ 20260209 11.36 1.2161 3.0644 \n",
"27353 000766.SZ 20260209 23.65 1.8680 2.3253 \n",
"27354 000591.SZ 20260209 5.72 5.9341 9.0727 \n",
"21882 002289.SZ 20260224 27.97 1.5075 2.5139 \n",
"21883 600901.SH 20260224 6.38 0.3122 0.7895 \n",
"21884 002353.SZ 20260224 103.70 2.8704 3.4515 \n",
"21885 300435.SZ 20260224 30.50 3.6153 5.4615 \n",
"21886 300084.SZ 20260224 11.38 9.3900 10.1377 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm \\\n",
"0 0.51 24.3404 20.9997 3.0175 3.9021 2.8680 \n",
"1 0.80 38.6753 105.5089 4.2033 11.2338 18.9830 \n",
"2 0.65 347.7936 NaN 3.7189 0.1291 0.1352 \n",
"3 0.66 NaN 640.0343 29.5658 254.5923 140.4090 \n",
"4 1.41 160.0964 NaN 8.4111 14.5063 16.3558 \n",
"... ... ... ... ... ... ... \n",
"27350 0.73 13.3573 18.0503 1.2589 0.7347 0.9425 \n",
"27351 0.85 NaN NaN 8.0159 2.9840 2.5496 \n",
"27352 0.87 53.3349 33.5338 4.9536 4.9192 3.9029 \n",
"27353 0.75 405.0086 397.6822 9.9329 17.2829 18.3415 \n",
"27354 1.27 18.3189 21.1797 0.9314 3.7171 4.1825 \n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"0 0.99 136.4038 148.8393 10.2870 14.6635 15.5540 0.6789 \n",
"1 1.20 37.0409 42.9823 1.8561 2.2661 2.3080 2.5094 \n",
"2 0.90 226.4426 NaN 3.9842 12.6831 12.6434 0.3456 \n",
"3 0.94 19.1275 26.8054 1.7756 0.6334 0.6516 1.7306 \n",
"4 0.89 NaN NaN 2.3813 12.2524 13.1011 0.4458 \n",
"... ... ... ... ... ... ... ... \n",
"21882 2.01 NaN NaN 35.8237 35.5848 28.2125 NaN \n",
"21883 0.78 12.5570 11.6882 1.5234 7.0010 6.2032 6.2700 \n",
"21884 1.07 40.4159 37.4306 4.7938 7.9502 6.7506 0.8096 \n",
"21885 1.10 NaN 172.8196 3.5518 4.3304 4.1720 0.6557 \n",
"21886 2.25 NaN NaN 4.6382 9.6453 9.5673 NaN \n",
"\n",
" dv_ratio dv_ttm total_share float_share free_share total_mv \\\n",
"0 1.0183 1.0183 26080.2350 18605.2851 14794.9501 2.040518e+06 \n",
"1 0.6398 0.6398 24721.2171 21036.5666 16807.4482 1.325304e+06 \n",
"2 0.0945 0.0945 102510.0438 102412.9669 64854.1551 1.084556e+06 \n",
"3 0.0665 0.0533 8594.7726 8400.0000 6014.9271 6.420123e+06 \n",
"4 NaN NaN 18421.3929 9389.9078 6414.2078 3.371115e+05 \n",
"... ... ... ... ... ... ... \n",
"27350 1.1303 1.1303 116144.2159 97496.2288 51416.3105 1.401861e+06 \n",
"27351 NaN NaN 42163.0000 12466.9576 12097.9576 5.843792e+05 \n",
"27352 1.7937 1.7937 32634.1682 31649.5307 12560.3926 3.707242e+05 \n",
"27353 NaN NaN 96649.4707 96600.7681 77600.7681 2.285760e+06 \n",
"27354 1.9711 2.0779 392444.2493 392354.1671 256620.6136 2.244781e+06 \n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"0 0.6789 14920.5000 13476.2250 5426.6150 8.791159e+05 \n",
"1 2.5094 13333.3600 6450.5766 6450.5766 3.446674e+05 \n",
"2 0.3456 103657.2100 71057.2100 30872.7971 8.997446e+05 \n",
"3 1.7306 51142.0000 51142.0000 14064.0840 4.387984e+05 \n",
"4 0.4458 4006.9870 4006.9870 2188.0251 2.172989e+05 \n",
"... ... ... ... ... ... \n",
"21882 NaN 28025.3733 27995.3733 16788.3130 7.838697e+05 \n",
"21883 6.2700 579186.6431 579045.2431 228992.3580 3.695211e+06 \n",
"21884 0.8096 102385.5833 69324.3890 57652.8100 1.061738e+07 \n",
"21885 0.6557 38571.3000 36881.4630 24414.0100 1.176425e+06 \n",
"21886 NaN 50838.9899 34610.1638 32057.6638 5.785477e+05 \n",
"\n",
" circ_mv is_st \n",
"0 1.455678e+06 False \n",
"1 1.127770e+06 False \n",
"2 1.083529e+06 False \n",
"3 6.274632e+06 False \n",
"4 1.718353e+05 False \n",
"0 7.940192e+05 False \n",
"1 1.667474e+05 False \n",
"2 6.167766e+05 False \n",
"3 4.387984e+05 False \n",
"4 2.172989e+05 False \n",
"... ... ... \n",
"27350 1.176779e+06 False \n",
"27351 1.727920e+05 False \n",
"27352 3.595387e+05 False \n",
"27353 2.284608e+06 False \n",
"27354 2.244266e+06 False \n",
"21882 7.830306e+05 True \n",
"21883 3.694309e+06 False \n",
"21884 7.188939e+06 False \n",
"21885 1.124885e+06 False \n",
"21886 3.938637e+05 False \n",
"\n",
"[27355 rows x 19 columns]\n"
"[21887 rows x 19 columns]\n"
]
}
],
@@ -306,58 +301,58 @@
"output_type": "stream",
"text": [
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
"5 603261.SH 20260213 28.95 0.4664 1.3719 \n",
"14 002700.SZ 20260213 7.28 1.5973 1.6181 \n",
"34 300344.SZ 20260213 1.87 14.3407 25.9753 \n",
"67 000430.SZ 20260213 7.26 0.8541 1.3705 \n",
"81 000752.SZ 20260213 10.86 1.0429 1.2849 \n",
"7 600360.SH 20260227 9.58 2.1195 2.7285 \n",
"77 000669.SZ 20260227 4.56 7.5951 9.5786 \n",
"108 603580.SH 20260227 17.19 0.8104 2.4841 \n",
"111 603557.SH 20260227 3.51 5.2656 7.8297 \n",
"127 603377.SH 20260227 3.70 1.1320 1.7903 \n",
"... ... ... ... ... ... \n",
"27165 300301.SZ 20260209 2.49 1.9012 2.0554 \n",
"27244 002822.SZ 20260209 3.53 1.0762 1.0762 \n",
"27270 300147.SZ 20260209 9.44 1.7053 2.2069 \n",
"27281 002501.SZ 20260209 2.16 3.6044 4.6543 \n",
"27297 002620.SZ 20260209 5.98 2.2406 3.1755 \n",
"21722 603843.SH 20260224 5.66 2.1676 3.0441 \n",
"21751 002253.SZ 20260224 10.51 1.2118 1.4935 \n",
"21808 000903.SZ 20260224 2.70 1.2350 1.8672 \n",
"21813 000995.SZ 20260224 15.83 11.1164 16.4343 \n",
"21882 002289.SZ 20260224 27.97 1.5075 2.5139 \n",
"\n",
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
"5 0.49 NaN NaN 3.3744 7.7410 7.8754 NaN \n",
"14 0.77 32.3153 40.4077 2.2014 4.2912 4.3540 0.9066 \n",
"34 0.60 NaN NaN 5.3118 4.6416 4.9881 NaN \n",
"67 0.49 NaN NaN 21.9522 13.6188 12.8340 NaN \n",
"81 1.21 109.3444 19.4711 4.6597 6.7963 6.4062 NaN \n",
"7 1.08 72.0218 52.4452 2.7077 4.4710 4.1388 0.7724 \n",
"77 3.02 NaN NaN NaN 2.3735 2.4518 NaN \n",
"108 0.56 NaN NaN 5.3358 13.4080 9.7500 0.4770 \n",
"111 2.82 NaN NaN 27.9422 7.0938 8.9069 NaN \n",
"127 1.37 NaN NaN 3.2661 3.2762 4.0899 NaN \n",
"... ... ... ... ... ... ... ... \n",
"27165 0.97 NaN NaN 12.5588 4.0907 4.7109 NaN \n",
"27244 0.95 NaN NaN 4.9828 2.9693 6.5620 NaN \n",
"27270 1.21 NaN NaN 9.0126 3.3586 4.2436 NaN \n",
"27281 0.87 NaN NaN 29.0833 22.9884 26.1834 NaN \n",
"27297 1.30 NaN NaN NaN 2.8840 4.2972 NaN \n",
"21722 0.61 NaN NaN 14.1532 2.9075 3.3288 NaN \n",
"21751 0.62 NaN NaN 2.2278 14.3426 20.5492 NaN \n",
"21808 0.95 NaN NaN 3.9295 1.1041 1.1752 NaN \n",
"21813 0.54 101.3839 NaN 19.0447 16.2904 19.2344 NaN \n",
"21882 2.01 NaN NaN 35.8237 35.5848 28.2125 NaN \n",
"\n",
" dv_ttm total_share float_share free_share total_mv \\\n",
"5 NaN 7750.5022 7750.5022 2634.9858 224377.0387 \n",
"14 0.9066 41362.8185 26346.4874 26007.0037 301121.3187 \n",
"34 NaN 64170.6416 63999.4166 35333.5001 119999.0998 \n",
"67 NaN 80963.5372 37055.6486 23092.8156 587795.2801 \n",
"81 NaN 26375.8491 26375.8491 21407.3042 286441.7212 \n",
"7 0.7724 96029.5304 96029.5304 74596.8648 919962.9012 \n",
"77 NaN 68040.8797 68040.8797 53950.9653 310266.4114 \n",
"108 0.4770 13067.3200 13067.3200 4263.2200 224627.2308 \n",
"111 NaN 62343.6888 62343.6888 41926.6552 218826.3477 \n",
"127 NaN 71491.6351 71491.6351 45201.8751 264519.0499 \n",
"... ... ... ... ... ... \n",
"27165 NaN 82986.8769 78987.6719 73061.8561 206637.3235 \n",
"27244 NaN 195094.2200 107059.0368 107059.0368 688682.5966 \n",
"27270 NaN 66127.9045 65739.8353 50798.8432 624247.4185 \n",
"27281 NaN 355000.0000 354646.9206 274646.9206 766800.0000 \n",
"27297 NaN 37749.4000 31536.0303 22251.3747 225741.4120 \n",
"21722 NaN 69962.3237 69962.3237 49817.1582 395986.7521 \n",
"21751 NaN 22562.6095 20830.4044 16901.0873 237133.0258 \n",
"21808 NaN 193484.4410 192026.1648 127011.9255 522407.9907 \n",
"21813 NaN 17740.8000 17740.8000 12000.1709 280836.8640 \n",
"21882 NaN 28025.3733 27995.3733 16788.3130 783869.6912 \n",
"\n",
" circ_mv is_st \n",
"5 224377.0387 True \n",
"14 191802.4283 True \n",
"34 119678.9090 True \n",
"67 269024.0088 True \n",
"81 286441.7212 True \n",
"7 919962.9012 True \n",
"77 310266.4114 True \n",
"108 224627.2308 True \n",
"111 218826.3477 True \n",
"127 264519.0499 True \n",
"... ... ... \n",
"27165 196679.3030 True \n",
"27244 377918.3999 True \n",
"27270 620584.0452 True \n",
"27281 766037.3485 True \n",
"27297 188585.4612 True \n",
"21722 395986.7521 True \n",
"21751 218927.5502 True \n",
"21808 518470.6450 True \n",
"21813 280836.8640 True \n",
"21882 783030.5912 True \n",
"\n",
"[870 rows x 19 columns]\n"
"[692 rows x 19 columns]\n"
]
}
],
@@ -407,7 +402,7 @@
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 9656995 entries, 0 to 27354\n",
"Index: 9678882 entries, 0 to 21886\n",
"Data columns (total 3 columns):\n",
" # Column Dtype \n",
"--- ------ ----- \n",
@@ -415,7 +410,7 @@
" 1 trade_date object\n",
" 2 is_st bool \n",
"dtypes: bool(1), object(2)\n",
"memory usage: 230.2+ MB\n",
"memory usage: 230.8+ MB\n",
"None\n"
]
}