|
10 | 10 | import os |
11 | 11 |
|
12 | 12 | from django.core.wsgi import get_wsgi_application |
13 | | -# |
14 | | -# # 检查是否启用 memray 分析 |
15 | | -# if os.environ.get('ENABLE_MEMRAY') == '1': |
16 | | -# import memray |
17 | | -# import atexit |
18 | | -# |
19 | | -# # 为每个进程创建单独的追踪文件 |
20 | | -# pid = os.getpid() |
21 | | -# output_file = f"memray_output_{pid}.bin" |
22 | | -# |
23 | | -# tracker = memray.Tracker(output_file) |
24 | | -# tracker.__enter__() |
25 | | -# |
26 | | -# |
27 | | -# def cleanup(): |
28 | | -# tracker.__exit__(None, None, None) |
29 | | -# |
30 | | -# |
31 | | -# atexit.register(cleanup) |
32 | 13 |
|
33 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maxkb.settings') |
34 | 15 |
|
35 | 16 | application = get_wsgi_application() |
36 | 17 |
|
37 | 18 |
|
38 | | -# ----------------------------- |
39 | | -# 全局初始化,只希望在 master preload 阶段执行一次 |
40 | | -# ----------------------------- |
41 | | -def preloaded_init(): |
| 19 | + |
| 20 | +def post_handler(): |
42 | 21 | from common.database_model_manage.database_model_manage import DatabaseModelManage |
43 | 22 | from common import event |
44 | | - from common.utils.logger import maxkb_logger |
45 | 23 |
|
46 | 24 | event.run() |
47 | 25 | DatabaseModelManage.init() |
48 | 26 |
|
49 | | - if os.environ.get("ENABLE_SCHEDULER") == "1": |
50 | | - from common import job |
51 | | - |
52 | | - job.run() |
53 | 27 |
|
54 | | - maxkb_logger.info("✅ preloaded_init: master 初始化完成,内存将被 worker 共享") |
| 28 | +def post_scheduler_handler(): |
| 29 | + from common import job |
55 | 30 |
|
| 31 | + job.run() |
56 | 32 |
|
57 | | -# Gunicorn preload 阶段会执行此逻辑 |
58 | | -if os.environ.get("GUNICORN_PRELOAD", "1") == "1": |
59 | | - try: |
60 | | - preloaded_init() |
61 | | - except Exception as e: |
62 | | - import traceback |
63 | | - from common.utils.logger import maxkb_logger |
| 33 | +# 启动后处理函数 |
| 34 | +post_handler() |
64 | 35 |
|
65 | | - maxkb_logger.info("⚠️ preload 初始化失败:", e) |
66 | | - traceback.print_exc() |
| 36 | +# 仅在scheduler中启动定时任务,dev local_model celery 不需要 |
| 37 | +if os.environ.get('ENABLE_SCHEDULER') == '1': |
| 38 | + post_scheduler_handler() |
0 commit comments