Dockerfile 部署

This commit is contained in:
hjq
2026-06-12 17:24:19 +08:00
parent fa076bb13a
commit 200c7cf9ae
4 changed files with 52 additions and 10 deletions

View File

@@ -118,15 +118,33 @@ def background_sync_job():
finally:
release_browser()
# 初始化定时调度器
scheduler = BackgroundScheduler()
scheduler.add_job(func=background_sync_job, trigger="interval", minutes=30)
# 启动调度器
scheduler.start()
def should_start_scheduler():
"""
控制定时任务是否启用。
浏览器自动化服务若运行在多 worker 场景,必须避免每个 worker 都起一份调度器。
"""
return os.getenv("ENABLE_BACKGROUND_SCHEDULER", "1") == "1"
scheduler = None
if should_start_scheduler():
scheduler = BackgroundScheduler()
scheduler.add_job(func=background_sync_job, trigger="interval", minutes=30)
scheduler.start()
print("[调度器] APScheduler 已启动。")
else:
print("[调度器] 已按环境变量禁用后台定时任务。")
# 确保在应用退出时关闭调度器
import atexit
atexit.register(lambda: scheduler.shutdown())
def shutdown_scheduler():
if scheduler and scheduler.running:
scheduler.shutdown()
atexit.register(shutdown_scheduler)
def get_db_connection():
"""获取数据库连接"""
@@ -1281,4 +1299,4 @@ if __name__ == '__main__':
port=port,
threaded=True,
use_reloader=False
)
)