版本变更V3.35将图像的处理统一更换到新表当中
This commit is contained in:
25
inventory-backend/app/utils/executor.py
Normal file
25
inventory-backend/app/utils/executor.py
Normal file
@ -0,0 +1,25 @@
|
||||
import atexit
|
||||
import logging
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# 全局初始化线程池
|
||||
_executor = ThreadPoolExecutor(max_workers=4, thread_name_prefix='image_embedding_')
|
||||
|
||||
def run_embedding_task(fn, *args, **kwargs):
|
||||
"""
|
||||
提交后台任务到线程池
|
||||
"""
|
||||
logger.info("Submitting embedding task to background thread...")
|
||||
return _executor.submit(fn, *args, **kwargs)
|
||||
|
||||
def _shutdown_executor():
|
||||
"""
|
||||
优雅关闭线程池,在 Gunicorn worker 退出时触发
|
||||
"""
|
||||
logger.info("Shutting down background thread pool...")
|
||||
_executor.shutdown(wait=False)
|
||||
|
||||
# 注册到系统退出事件,这样就不会报 _shutdown not defined 了
|
||||
atexit.register(_shutdown_executor)
|
||||
Reference in New Issue
Block a user