初始化换发型项目:3个微服务代码 + 部署脚本
包含: - hair_service_sd: 换发型/换发色算法服务 (端口 8801) - photo_service: LoRA 训练调度服务 (端口 32678) - stable-diffusion-webui: SD WebUI 推理服务 (端口 57860) - kohya_ss_home: 训练环境代码 - meidaojia: 监控测试脚本 - setup.sh: 一键部署脚本 (conda环境恢复 + 配置生成 + 完整性检查) - start_all_services.sh: 启动3个服务 - configure.ini.template: 路径模板化 (BASE_DIR自动推导) - conda_envs/py310.yml: py310 环境定义 大文件 (weights/, models/, data/, conda_envs/*.tar.gz 等) 通过 .gitignore 排除, 由网盘单独上传。
This commit is contained in:
Executable
+68
@@ -0,0 +1,68 @@
|
||||
import time
|
||||
from redis.lock import Lock
|
||||
import logging
|
||||
|
||||
QUEUE_NAME = 'task_queue'
|
||||
# 配置
|
||||
REDIS_HOST = 'r-2zevknj33pkqrrbzjp.redis.rds.aliyuncs.com'
|
||||
REDIS_PORT = 6379
|
||||
REDIS_DB = 0
|
||||
DEFAULT_TIMEOUT = (60+10)
|
||||
GPU_SERVER_TIME_OUT = 60
|
||||
GPU_SERVER_LIST = 'gpu_server_list_key'
|
||||
SERVER_LOG_ = "server_log"
|
||||
SERVER_LOG_EVENT_LEN = 20
|
||||
KEY_QUEUE_LOCK_NAME = 'KEY_QUEUE_LOCK_NAME'
|
||||
SERVER_LIST_LOCK_NAME = 'SERVER_LIST_LOCK_NAME'
|
||||
SERVER_LIST_LOG_LOCK_NAME = 'SERVER_LIST_LOG_LOCK_NAME'
|
||||
|
||||
# 创建 logger
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.INFO) # 设置 logger 的级别
|
||||
|
||||
# 创建文件 handler
|
||||
file_handler = logging.FileHandler('/var/log/meidaojia/config.log')
|
||||
file_handler.setLevel(logging.INFO)
|
||||
file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
|
||||
file_handler.setFormatter(file_formatter)
|
||||
|
||||
# 创建控制台 handler
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setLevel(logging.INFO)
|
||||
console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
|
||||
console_handler.setFormatter(console_formatter)
|
||||
|
||||
# 添加 handlers 到 logger
|
||||
logger.addHandler(file_handler)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
def acquire_lock(redis_client, lock_name):
|
||||
lock = Lock(
|
||||
redis_client,
|
||||
name=lock_name,
|
||||
timeout=30,
|
||||
blocking_timeout=10
|
||||
)
|
||||
acquired = lock.acquire()
|
||||
if acquired:
|
||||
return lock
|
||||
return None
|
||||
|
||||
|
||||
|
||||
# def acquire_lock(r, acquire_timeout=10):
|
||||
# """获取分布式锁"""
|
||||
# end = time.time() + acquire_timeout
|
||||
# while time.time() < end:
|
||||
# # 使用 SETNX 尝试获取锁
|
||||
# if r.setnx(TASK_REDIS_LOCK_NAME, 1):
|
||||
# # 设置过期时间,防止死锁
|
||||
# r.expire(TASK_REDIS_LOCK_NAME, 10)
|
||||
# return True
|
||||
# time.sleep(0.1)
|
||||
# return False
|
||||
# # return True
|
||||
|
||||
# def release_lock(r):
|
||||
# """释放分布式锁"""
|
||||
# r.delete(TASK_REDIS_LOCK_NAME)
|
||||
Reference in New Issue
Block a user