diff --git a/MOBILE_DEPLOYMENT_REPORT.md b/MOBILE_DEPLOYMENT_REPORT.md index 6aaa830..3236585 100644 --- a/MOBILE_DEPLOYMENT_REPORT.md +++ b/MOBILE_DEPLOYMENT_REPORT.md @@ -216,3 +216,4 @@ curl -s http://localhost:5002/meal-planning/mobile | head -20 **技术支持**:如有任何问题,请检查服务日志或联系技术支持团队。 + diff --git a/MOBILE_OPTIMIZATION_PLAN.md b/MOBILE_OPTIMIZATION_PLAN.md index 7c3d7d1..09874c2 100644 --- a/MOBILE_OPTIMIZATION_PLAN.md +++ b/MOBILE_OPTIMIZATION_PLAN.md @@ -204,3 +204,4 @@ input, select, textarea, button { **立即行动**:部署移动端优化页面,让用户享受更好的移动端体验! 🚀 + diff --git a/__pycache__/gunicorn.conf.cpython-313.pyc b/__pycache__/gunicorn.conf.cpython-313.pyc new file mode 100644 index 0000000..45984f5 Binary files /dev/null and b/__pycache__/gunicorn.conf.cpython-313.pyc differ diff --git a/__pycache__/run_dev.cpython-313.pyc b/__pycache__/run_dev.cpython-313.pyc new file mode 100644 index 0000000..7bb049f Binary files /dev/null and b/__pycache__/run_dev.cpython-313.pyc differ diff --git a/logs/app.log b/logs/app.log index e6f71a9..c701f4d 100644 --- a/logs/app.log +++ b/logs/app.log @@ -1197,3 +1197,9 @@ OSError: [Errno 5] Input/output error 2025-09-10 23:38:48,809 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] 2025-09-10 23:39:40,968 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] 2025-09-10 23:41:22,227 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2025-09-14 10:04:18,146 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2025-09-14 10:13:07,891 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2025-09-14 10:20:19,427 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2025-09-14 10:21:05,361 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2025-09-14 10:23:47,060 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] +2025-09-14 10:25:23,276 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82] diff --git a/logs/gunicorn.pid b/logs/gunicorn.pid index 4e8a6e6..e483cc7 100644 --- a/logs/gunicorn.pid +++ b/logs/gunicorn.pid @@ -1 +1 @@ -5464 +6470 diff --git a/logs/gunicorn_access.log b/logs/gunicorn_access.log index 44ad1e6..7c38423 100644 --- a/logs/gunicorn_access.log +++ b/logs/gunicorn_access.log @@ -999,3 +999,30 @@ 123.139.39.220 - - [10/Sep/2025:23:43:43 +0800] "GET /admin/static/vendor/select2/select2.css?v=4.2.1 HTTP/1.1" 304 0 "http://101.43.95.130:5002/admin/admin_user/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 1058 123.139.39.220 - - [10/Sep/2025:23:43:43 +0800] "GET /admin/static/vendor/select2/select2-bootstrap4.css?v=1.4.6 HTTP/1.1" 304 0 "http://101.43.95.130:5002/admin/admin_user/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 1106 123.139.39.220 - - [10/Sep/2025:23:43:43 +0800] "GET /admin/static/vendor/bootstrap-daterangepicker/daterangepicker-bs4.css?v=1.3.22 HTTP/1.1" 304 0 "http://101.43.95.130:5002/admin/admin_user/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 1774 +123.139.39.220 - - [11/Sep/2025:00:28:47 +0800] "POST /api/meal-planning/generate HTTP/1.1" 200 3383 "http://101.43.95.130:5002/meal-planning" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 28418078 +123.139.39.220 - - [11/Sep/2025:00:33:38 +0800] "GET /meal-planning/history HTTP/1.1" 200 22501 "http://101.43.95.130:5002/meal-planning" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 264193 +123.139.39.220 - - [11/Sep/2025:00:33:38 +0800] "GET /api/meal-planning/list?page=1&per_page=10 HTTP/1.1" 200 3594 "http://101.43.95.130:5002/meal-planning/history" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 251367 +123.139.39.220 - - [11/Sep/2025:03:44:38 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/138.0.7204.180 Mobile Safari/537.36 XWEB/1380159 MMWEBSDK/20250802 MMWEBID/1757 MicroMessenger/8.0.62.2900(0x28003E59) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64" 350292 +123.139.39.220 - - [11/Sep/2025:03:44:38 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/138.0.7204.180 Mobile Safari/537.36 XWEB/1380159 MMWEBSDK/20250802 MMWEBID/1757 MicroMessenger/8.0.62.2900(0x28003E59) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64" 1105 +123.139.39.220 - - [11/Sep/2025:03:44:38 +0800] "GET /favicon.ico HTTP/1.1" 404 207 "http://101.43.95.130:5002/" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/138.0.7204.180 Mobile Safari/537.36 XWEB/1380159 MMWEBSDK/20250802 MMWEBID/1757 MicroMessenger/8.0.62.2900(0x28003E59) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64" 1246 +123.139.39.220 - - [11/Sep/2025:03:44:50 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 334899 +123.139.39.220 - - [11/Sep/2025:03:44:51 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 769 +123.139.39.220 - - [11/Sep/2025:03:44:52 +0800] "GET /favicon.ico HTTP/1.1" 404 207 "http://101.43.95.130:5002/" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 849 +123.139.39.220 - - [11/Sep/2025:03:44:58 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 333649 +123.139.39.220 - - [11/Sep/2025:03:44:59 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 313864 +123.139.39.220 - - [11/Sep/2025:03:44:59 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 709 +123.139.39.220 - - [11/Sep/2025:03:45:02 +0800] "GET /meal-planning HTTP/1.1" 200 25595 "http://101.43.95.130:5002/" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 6332 +123.139.39.220 - - [11/Sep/2025:03:45:02 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/meal-planning" "Mozilla/5.0 (Linux; Android 15; BVL-AN16 Build/HONORBVL-AN16;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 T7/13.38 SP-engine/2.76.0 languageType/0 bdh_dvt/0 bdh_de/0 bdh_ds/0 bdapp/1.0 (bdhonorbrowser; bdhonorbrowser) bdhonorbrowser/9.3.0.3 (P1 15) NABar/1.0" 1103 +123.139.39.220 - - [11/Sep/2025:09:43:27 +0800] "GET /admin/admin_user/ HTTP/1.1" 200 36361 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 11719436 +123.139.39.220 - - [11/Sep/2025:09:43:27 +0800] "GET /admin/static/vendor/select2/select2.css?v=4.2.1 HTTP/1.1" 304 0 "http://101.43.95.130:5002/admin/admin_user/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 58639 +123.139.39.220 - - [11/Sep/2025:09:43:27 +0800] "GET /admin/static/vendor/bootstrap-daterangepicker/daterangepicker-bs4.css?v=1.3.22 HTTP/1.1" 304 0 "http://101.43.95.130:5002/admin/admin_user/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 17518 +123.139.39.220 - - [11/Sep/2025:09:43:27 +0800] "GET /admin/static/vendor/select2/select2-bootstrap4.css?v=1.4.6 HTTP/1.1" 304 0 "http://101.43.95.130:5002/admin/admin_user/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0" 22304 +123.139.37.169 - - [14/Sep/2025:10:27:34 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 537392 +123.139.37.169 - - [14/Sep/2025:10:27:35 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 4375 +123.139.37.169 - - [14/Sep/2025:10:27:35 +0800] "GET /favicon.ico HTTP/1.1" 404 207 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 1553 +123.139.37.169 - - [14/Sep/2025:10:27:58 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 511859 +123.139.37.169 - - [14/Sep/2025:10:27:58 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 4291 +123.139.37.169 - - [14/Sep/2025:13:01:11 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 571826 +123.139.37.169 - - [14/Sep/2025:13:01:11 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 1114 +123.139.37.169 - - [14/Sep/2025:13:02:49 +0800] "GET / HTTP/1.1" 200 49733 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 547778 +123.139.37.169 - - [14/Sep/2025:13:02:49 +0800] "GET /api/check-login HTTP/1.1" 200 35 "http://101.43.95.130:5002/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" 946 diff --git a/logs/gunicorn_error.log b/logs/gunicorn_error.log index 402a952..2b5b86a 100644 --- a/logs/gunicorn_error.log +++ b/logs/gunicorn_error.log @@ -3992,3 +3992,184 @@ OSError: [Errno 5] Input/output error [2025-09-10 23:41:23 +0800] [5485] [INFO] Booting worker with pid: 5485 [2025-09-10 23:41:23 +0800] [5485] [INFO] 工作进程 5485 已启动 [2025-09-10 23:41:23 +0800] [5485] [INFO] 工作进程 5485 初始化完成 +[2025-09-11 04:22:10 +0800] [5464] [ERROR] Worker (pid:5481) was sent SIGHUP! +[2025-09-11 04:22:10 +0800] [5464] [ERROR] Worker (pid:5482) was sent SIGHUP! +[2025-09-11 04:22:10 +0800] [5464] [ERROR] Worker (pid:5483) was sent SIGHUP! +[2025-09-11 04:22:10 +0800] [5464] [ERROR] Worker (pid:5484) was sent SIGHUP! +[2025-09-11 04:22:10 +0800] [5464] [ERROR] Worker (pid:5485) was sent SIGHUP! +[2025-09-11 04:22:10 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:10 +0800] [5854] [INFO] Booting worker with pid: 5854 +[2025-09-11 04:22:10 +0800] [5854] [INFO] 工作进程 5854 已启动 +[2025-09-11 04:22:10 +0800] [5854] [INFO] 工作进程 5854 初始化完成 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5855] [INFO] Booting worker with pid: 5855 +[2025-09-11 04:22:11 +0800] [5855] [INFO] 工作进程 5855 已启动 +[2025-09-11 04:22:11 +0800] [5855] [INFO] 工作进程 5855 初始化完成 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5856] [INFO] Booting worker with pid: 5856 +[2025-09-11 04:22:11 +0800] [5856] [INFO] 工作进程 5856 已启动 +[2025-09-11 04:22:11 +0800] [5856] [INFO] 工作进程 5856 初始化完成 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5857] [INFO] Booting worker with pid: 5857 +[2025-09-11 04:22:11 +0800] [5857] [INFO] 工作进程 5857 已启动 +[2025-09-11 04:22:11 +0800] [5857] [INFO] 工作进程 5857 初始化完成 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5858] [INFO] Booting worker with pid: 5858 +[2025-09-11 04:22:11 +0800] [5858] [INFO] 工作进程 5858 已启动 +[2025-09-11 04:22:11 +0800] [5858] [INFO] 工作进程 5858 初始化完成 +[2025-09-11 04:22:11 +0800] [5464] [INFO] Handling signal: hup +[2025-09-11 04:22:11 +0800] [5464] [INFO] Hang up: Master +[2025-09-11 04:22:11 +0800] [5464] [INFO] Gunicorn服务器重载中... +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5859] [INFO] Booting worker with pid: 5859 +[2025-09-11 04:22:11 +0800] [5859] [INFO] 工作进程 5859 已启动 +[2025-09-11 04:22:11 +0800] [5859] [INFO] 工作进程 5859 初始化完成 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5860] [INFO] Booting worker with pid: 5860 +[2025-09-11 04:22:11 +0800] [5860] [INFO] 工作进程 5860 已启动 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5860] [INFO] 工作进程 5860 初始化完成 +[2025-09-11 04:22:11 +0800] [5861] [INFO] Booting worker with pid: 5861 +[2025-09-11 04:22:11 +0800] [5861] [INFO] 工作进程 5861 已启动 +[2025-09-11 04:22:11 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 04:22:11 +0800] [5861] [INFO] 工作进程 5861 初始化完成 +[2025-09-11 04:22:11 +0800] [5854] [INFO] Worker exiting (pid: 5854) +[2025-09-11 04:22:11 +0800] [5862] [INFO] Booting worker with pid: 5862 +[2025-09-11 04:22:11 +0800] [5862] [INFO] 工作进程 5862 已启动 +[2025-09-11 04:22:11 +0800] [5862] [INFO] 工作进程 5862 初始化完成 +[2025-09-11 04:22:11 +0800] [5855] [INFO] Worker exiting (pid: 5855) +[2025-09-11 04:22:11 +0800] [5856] [INFO] Worker exiting (pid: 5856) +[2025-09-11 04:22:11 +0800] [5857] [INFO] Worker exiting (pid: 5857) +[2025-09-11 04:22:11 +0800] [5858] [INFO] Worker exiting (pid: 5858) +[2025-09-11 04:22:11 +0800] [5863] [INFO] Booting worker with pid: 5863 +[2025-09-11 04:22:11 +0800] [5863] [INFO] 工作进程 5863 已启动 +[2025-09-11 04:22:11 +0800] [5863] [INFO] 工作进程 5863 初始化完成 +[2025-09-11 04:22:12 +0800] [5464] [ERROR] Worker (pid:5854) was sent SIGTERM! +[2025-09-11 04:22:12 +0800] [5464] [ERROR] Worker (pid:5855) was sent SIGTERM! +[2025-09-11 04:22:12 +0800] [5464] [ERROR] Worker (pid:5857) was sent SIGTERM! +[2025-09-11 04:22:12 +0800] [5464] [ERROR] Worker (pid:5856) was sent SIGTERM! +[2025-09-11 04:22:12 +0800] [5464] [ERROR] Worker (pid:5858) was sent SIGTERM! +[2025-09-11 09:00:29 +0800] [5464] [CRITICAL] WORKER TIMEOUT (pid:5862) +[2025-09-11 09:00:29 +0800] [5862] [INFO] 工作进程 5862 异常退出 +[2025-09-11 09:00:29 +0800] [5862] [ERROR] Error handling request (no URI read) +Traceback (most recent call last): + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/workers/sync.py", line 133, in handle + req = next(parser) + ^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/parser.py", line 41, in __next__ + self.mesg = self.mesg_class(self.cfg, self.unreader, self.source_addr, self.req_count) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/message.py", line 259, in __init__ + super().__init__(cfg, unreader, peer_addr) + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/message.py", line 60, in __init__ + unused = self.parse(self.unreader) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/message.py", line 274, in parse + line, rbuf = self.read_line(unreader, buf, self.limit_request_line) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/message.py", line 326, in read_line + self.get_data(unreader, buf) + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/message.py", line 262, in get_data + data = unreader.read() + ^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/unreader.py", line 36, in read + d = self.chunk() + ^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/http/unreader.py", line 63, in chunk + return self.sock.recv(self.mxchunk) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/renjianbo/miniconda3/envs/myenv/lib/python3.12/site-packages/gunicorn/workers/base.py", line 204, in handle_abort + sys.exit(1) +SystemExit: 1 +[2025-09-11 09:00:29 +0800] [5862] [INFO] Worker exiting (pid: 5862) +[2025-09-11 09:00:30 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:00:30 +0800] [32107] [INFO] Booting worker with pid: 32107 +[2025-09-11 09:00:30 +0800] [32107] [INFO] 工作进程 32107 已启动 +[2025-09-11 09:00:30 +0800] [32107] [INFO] 工作进程 32107 初始化完成 +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:5859) was sent SIGHUP! +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:5860) was sent SIGHUP! +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:5861) was sent SIGHUP! +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:5863) was sent SIGHUP! +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:32107) was sent SIGHUP! +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29153] [INFO] Booting worker with pid: 29153 +[2025-09-11 09:56:39 +0800] [29153] [INFO] 工作进程 29153 已启动 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29153] [INFO] 工作进程 29153 初始化完成 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29160] [INFO] Booting worker with pid: 29160 +[2025-09-11 09:56:39 +0800] [29160] [INFO] 工作进程 29160 已启动 +[2025-09-11 09:56:39 +0800] [29160] [INFO] 工作进程 29160 初始化完成 +[2025-09-11 09:56:39 +0800] [29166] [INFO] Booting worker with pid: 29166 +[2025-09-11 09:56:39 +0800] [29166] [INFO] 工作进程 29166 已启动 +[2025-09-11 09:56:39 +0800] [29166] [INFO] 工作进程 29166 初始化完成 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29185] [INFO] Booting worker with pid: 29185 +[2025-09-11 09:56:39 +0800] [29185] [INFO] 工作进程 29185 已启动 +[2025-09-11 09:56:39 +0800] [29185] [INFO] 工作进程 29185 初始化完成 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29206] [INFO] Booting worker with pid: 29206 +[2025-09-11 09:56:39 +0800] [29206] [INFO] 工作进程 29206 已启动 +[2025-09-11 09:56:39 +0800] [29206] [INFO] 工作进程 29206 初始化完成 +[2025-09-11 09:56:39 +0800] [5464] [INFO] Handling signal: hup +[2025-09-11 09:56:39 +0800] [5464] [INFO] Hang up: Master +[2025-09-11 09:56:39 +0800] [5464] [INFO] Gunicorn服务器重载中... +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29225] [INFO] Booting worker with pid: 29225 +[2025-09-11 09:56:39 +0800] [29225] [INFO] 工作进程 29225 已启动 +[2025-09-11 09:56:39 +0800] [29225] [INFO] 工作进程 29225 初始化完成 +[2025-09-11 09:56:39 +0800] [29224] [INFO] Booting worker with pid: 29224 +[2025-09-11 09:56:39 +0800] [29224] [INFO] 工作进程 29224 已启动 +[2025-09-11 09:56:39 +0800] [29224] [INFO] 工作进程 29224 初始化完成 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29228] [INFO] Booting worker with pid: 29228 +[2025-09-11 09:56:39 +0800] [29228] [INFO] 工作进程 29228 已启动 +[2025-09-11 09:56:39 +0800] [5464] [INFO] 工作进程 [booting] 即将启动 +[2025-09-11 09:56:39 +0800] [29228] [INFO] 工作进程 29228 初始化完成 +[2025-09-11 09:56:39 +0800] [29230] [INFO] Booting worker with pid: 29230 +[2025-09-11 09:56:39 +0800] [29230] [INFO] 工作进程 29230 已启动 +[2025-09-11 09:56:39 +0800] [29230] [INFO] 工作进程 29230 初始化完成 +[2025-09-11 09:56:39 +0800] [29153] [INFO] Worker exiting (pid: 29153) +[2025-09-11 09:56:39 +0800] [29160] [INFO] Worker exiting (pid: 29160) +[2025-09-11 09:56:39 +0800] [29185] [INFO] Worker exiting (pid: 29185) +[2025-09-11 09:56:39 +0800] [29166] [INFO] Worker exiting (pid: 29166) +[2025-09-11 09:56:39 +0800] [29206] [INFO] Worker exiting (pid: 29206) +[2025-09-11 09:56:39 +0800] [5464] [INFO] Handling signal: term +[2025-09-11 09:56:39 +0800] [29225] [INFO] Worker exiting (pid: 29225) +[2025-09-11 09:56:39 +0800] [29224] [INFO] Worker exiting (pid: 29224) +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:29206) was sent SIGTERM! +[2025-09-11 09:56:39 +0800] [29228] [INFO] Worker exiting (pid: 29228) +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:29153) was sent SIGTERM! +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:29160) was sent SIGTERM! +[2025-09-11 09:56:39 +0800] [5464] [ERROR] Worker (pid:29185) was sent SIGTERM! +[2025-09-11 09:56:39 +0800] [29230] [INFO] Worker exiting (pid: 29230) +[2025-09-11 09:56:39 +0800] [29231] [INFO] Booting worker with pid: 29231 +[2025-09-11 09:56:39 +0800] [29231] [INFO] 工作进程 29231 已启动 +[2025-09-11 09:56:39 +0800] [29231] [INFO] 工作进程 29231 初始化完成 +[2025-09-14 10:25:24 +0800] [6470] [INFO] Starting gunicorn 21.2.0 +[2025-09-14 10:25:24 +0800] [6470] [INFO] Gunicorn服务器启动中... +[2025-09-14 10:25:24 +0800] [6470] [INFO] Listening at: http://0.0.0.0:5002 (6470) +[2025-09-14 10:25:24 +0800] [6470] [INFO] Using worker: sync +[2025-09-14 10:25:24 +0800] [6470] [INFO] 工作进程 [booting] 即将启动 +[2025-09-14 10:25:24 +0800] [6488] [INFO] Booting worker with pid: 6488 +[2025-09-14 10:25:24 +0800] [6488] [INFO] 工作进程 6488 已启动 +[2025-09-14 10:25:24 +0800] [6488] [INFO] 工作进程 6488 初始化完成 +[2025-09-14 10:25:24 +0800] [6470] [INFO] 工作进程 [booting] 即将启动 +[2025-09-14 10:25:24 +0800] [6489] [INFO] Booting worker with pid: 6489 +[2025-09-14 10:25:24 +0800] [6489] [INFO] 工作进程 6489 已启动 +[2025-09-14 10:25:24 +0800] [6489] [INFO] 工作进程 6489 初始化完成 +[2025-09-14 10:25:24 +0800] [6470] [INFO] 工作进程 [booting] 即将启动 +[2025-09-14 10:25:24 +0800] [6490] [INFO] Booting worker with pid: 6490 +[2025-09-14 10:25:24 +0800] [6490] [INFO] 工作进程 6490 已启动 +[2025-09-14 10:25:24 +0800] [6490] [INFO] 工作进程 6490 初始化完成 +[2025-09-14 10:25:24 +0800] [6470] [INFO] 工作进程 [booting] 即将启动 +[2025-09-14 10:25:24 +0800] [6497] [INFO] Booting worker with pid: 6497 +[2025-09-14 10:25:24 +0800] [6497] [INFO] 工作进程 6497 已启动 +[2025-09-14 10:25:24 +0800] [6497] [INFO] 工作进程 6497 初始化完成 +[2025-09-14 10:25:24 +0800] [6470] [INFO] 工作进程 [booting] 即将启动 +[2025-09-14 10:25:24 +0800] [6498] [INFO] Booting worker with pid: 6498 +[2025-09-14 10:25:24 +0800] [6498] [INFO] 工作进程 6498 已启动 +[2025-09-14 10:25:24 +0800] [6498] [INFO] 工作进程 6498 初始化完成 diff --git a/src/flask_prompt_master/__pycache__/__init__.cpython-313.pyc b/src/flask_prompt_master/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000..5577de1 Binary files /dev/null and b/src/flask_prompt_master/__pycache__/__init__.cpython-313.pyc differ diff --git a/src/flask_prompt_master/routes/__pycache__/meal_planning.cpython-312.pyc b/src/flask_prompt_master/routes/__pycache__/meal_planning.cpython-312.pyc index 4bbf4da..faf31b8 100644 Binary files a/src/flask_prompt_master/routes/__pycache__/meal_planning.cpython-312.pyc and b/src/flask_prompt_master/routes/__pycache__/meal_planning.cpython-312.pyc differ diff --git a/src/flask_prompt_master/routes/meal_planning.py b/src/flask_prompt_master/routes/meal_planning.py index 8ce3dd5..f8ad9ad 100644 --- a/src/flask_prompt_master/routes/meal_planning.py +++ b/src/flask_prompt_master/routes/meal_planning.py @@ -43,7 +43,7 @@ def generate_meal_plan(region_type, diner_count, meal_type, hometown, preference # 构建系统提示词(参考新代码结构) system_prompt = f"""你是一位专业的{region_type}智能饭菜清单规划师和营养搭配专家。 -背景信息:需要制定科学的饭菜清单方案,包括根据家乡风俗习惯推荐、个人喜好匹配、就餐人数适配、前后三天不重样、详细做法说明等全方位用餐指导。 +背景信息:需要制定科学的饭菜清单方案,包括根据家乡风俗习惯推荐、个人喜好匹配、就餐人数适配、详细做法说明等全方位用餐指导。 约束条件: - 确保营养均衡 diff --git a/src/flask_prompt_master/static/manifest.json b/src/flask_prompt_master/static/manifest.json index 3154f19..b755e94 100644 --- a/src/flask_prompt_master/static/manifest.json +++ b/src/flask_prompt_master/static/manifest.json @@ -55,3 +55,4 @@ } + diff --git a/src/flask_prompt_master/static/sw.js b/src/flask_prompt_master/static/sw.js index aafda21..f0b2676 100644 --- a/src/flask_prompt_master/static/sw.js +++ b/src/flask_prompt_master/static/sw.js @@ -125,3 +125,4 @@ self.addEventListener('notificationclick', function(event) { }); + diff --git a/src/flask_prompt_master/templates/meal_planning_mobile.html b/src/flask_prompt_master/templates/meal_planning_mobile.html index b4e3f17..7fb8489 100644 --- a/src/flask_prompt_master/templates/meal_planning_mobile.html +++ b/src/flask_prompt_master/templates/meal_planning_mobile.html @@ -498,3 +498,4 @@ document.addEventListener('DOMContentLoaded', function() { {% endblock %} + diff --git a/test_mobile_page.html b/test_mobile_page.html index 26015cc..8275520 100644 --- a/test_mobile_page.html +++ b/test_mobile_page.html @@ -157,3 +157,4 @@ + diff --git a/wechat-miniprogram/pages/meal-planning/meal-planning.js b/wechat-miniprogram/pages/meal-planning/meal-planning.js index 691bfcd..77ccbb0 100644 --- a/wechat-miniprogram/pages/meal-planning/meal-planning.js +++ b/wechat-miniprogram/pages/meal-planning/meal-planning.js @@ -260,3 +260,4 @@ Page({ }); + diff --git a/wechat-miniprogram/pages/meal-planning/meal-planning.wxml b/wechat-miniprogram/pages/meal-planning/meal-planning.wxml index b7bf926..56f9730 100644 --- a/wechat-miniprogram/pages/meal-planning/meal-planning.wxml +++ b/wechat-miniprogram/pages/meal-planning/meal-planning.wxml @@ -104,3 +104,4 @@ + diff --git a/wechat-miniprogram/pages/meal-planning/meal-planning.wxss b/wechat-miniprogram/pages/meal-planning/meal-planning.wxss index bd60b10..699e608 100644 --- a/wechat-miniprogram/pages/meal-planning/meal-planning.wxss +++ b/wechat-miniprogram/pages/meal-planning/meal-planning.wxss @@ -341,3 +341,4 @@ } + diff --git a/启动和停止.txt b/启动和停止.txt new file mode 100644 index 0000000..40e96c3 --- /dev/null +++ b/启动和停止.txt @@ -0,0 +1,160 @@ +# 提示词大师项目 - 服务器启动和停止指南 + +## 🚀 **启动服务器** + +### 方法一:使用完整命令启动 +```bash +# 进入项目目录 +cd /home/renjianbo/aitsc + +# 激活conda环境并启动服务 +eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" && conda activate myenv && gunicorn -c gunicorn.conf.py run_dev:app +``` + +### 方法二:分步启动 +```bash +# 1. 进入项目目录 +cd /home/renjianbo/aitsc + +# 2. 激活conda环境 +eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" +conda activate myenv + +# 3. 启动Gunicorn服务 +gunicorn -c gunicorn.conf.py run_dev:app +``` + +### 方法三:后台启动 +```bash +# 后台启动服务 +nohup gunicorn -c gunicorn.conf.py run_dev:app > logs/gunicorn.log 2>&1 & +``` + +## 🛑 **停止服务器** + +### 方法一:使用PID文件停止 +```bash +# 停止服务(如果存在PID文件) +kill -TERM $(cat logs/gunicorn.pid) +``` + +### 方法二:强制停止所有Gunicorn进程 +```bash +# 强制停止所有gunicorn进程 +pkill -9 -f gunicorn +``` + +### 方法三:停止特定项目进程 +```bash +# 停止run_dev:app相关进程 +pkill -f "run_dev:app" +``` + +## 🔍 **检查服务状态** + +### 检查进程状态 +```bash +# 查看Gunicorn进程 +ps aux | grep "run_dev:app" | grep -v grep + +# 查看所有Gunicorn进程 +ps aux | grep gunicorn | grep -v grep +``` + +### 检查端口状态 +```bash +# 检查5002端口是否被监听 +ss -tlnp | grep :5002 + +# 或者使用netstat +netstat -tlnp | grep :5002 +``` + +### 检查服务响应 +```bash +# 测试服务是否正常响应 +curl -s http://localhost:5002/ | head -10 + +# 测试特定页面 +curl -s -o /dev/null -w "%{http_code}" http://localhost:5002/admin/analytics_admin/ +``` + +## 📊 **查看日志** + +### 查看错误日志 +```bash +# 查看最新的错误日志 +tail -f logs/gunicorn_error.log + +# 查看应用日志 +tail -f logs/app.log +``` + +### 查看访问日志 +```bash +# 查看访问日志 +tail -f logs/gunicorn_access.log +``` + +## 🔧 **故障排除** + +### 清理和重启 +```bash +# 1. 停止所有相关进程 +pkill -f gunicorn + +# 2. 删除PID文件 +rm -f logs/gunicorn.pid + +# 3. 重新启动 +eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" && conda activate myenv && gunicorn -c gunicorn.conf.py run_dev:app +``` + +### 检查依赖 +```bash +# 检查Python环境 +which python +python --version + +# 检查已安装的包 +pip list | grep -E "(flask|gunicorn|openai)" +``` + +## 🌐 **访问地址** + +启动成功后,可以访问以下地址: + +- **主页**:`http://101.43.95.130:5002/` +- **饭菜规划**:`http://101.43.95.130:5002/meal-planning` +- **后台管理**:`http://101.43.95.130:5002/admin` +- **数据分析**:`http://101.43.95.130:5002/admin/analytics_admin/` + +## ✅ **启动成功的标志** + +看到以下信息表示启动成功: +- `[INFO] 应用启动` +- `[INFO] 工作进程 X 已启动` +- `[INFO] 工作进程 X 初始化完成` +- 端口5002开始监听 + +## 📝 **项目信息** + +- **项目名称**:提示词大师 +- **功能描述**:智能生成高质量提示词,提升您的工作效率 +- **技术栈**:Python 3.12 + Flask + Gunicorn + MySQL +- **端口**:5002 +- **环境**:conda myenv +- **配置文件**:gunicorn.conf.py +- **启动文件**:run_dev.py + +## 🚨 **注意事项** + +1. 确保conda环境已正确激活 +2. 确保所有依赖包已安装 +3. 确保数据库连接正常 +4. 确保5002端口未被占用 +5. 定期检查日志文件大小,避免磁盘空间不足 + +--- +*最后更新:2025-09-14* +*维护人员:系统管理员*