Skip to main content

Module startup

Module startup 

Source
Expand description

服务端启动流程与 Axum 路由组装。

main.rs 只保留全局分配器与入口调用;本模块负责服务端启动期的 配置、数据库自举、后台任务生命周期和路由组合。路由装配可能被重复调用 (例如测试),因此后台任务启动必须具备进程级幂等性。

Structs§

ServerOptions 🔒

Constants§

APP_REQUEST_TIMEOUT 🔒
BACKUP_IMPORT_TIMEOUT 🔒
EXPORT_TIMEOUT 🔒
IMAGE_UPLOAD_MAX_BYTES 🔒
IMAGE_UPLOAD_TIMEOUT 🔒
SHUTDOWN_DRAIN_TIMEOUT 🔒
收到退出信号后等待在途请求结束的上限;须小于容器停止超时(podman 默认 10 秒), 否则仍会被 SIGKILL。

Statics§

BACKGROUND_TASKS_STARTED 🔒

Functions§

build_router 🔒
exe_dir 🔒
可执行文件所在目录;hash.txt 与它同目录。
fatal_bind_error 🔒
init_cache_namespace 🔒
发布命名空间(plan §6.7):一个 SSR 缓存实例只服务一个发布, 发布变化即整表失效,杜绝缓存命中跨发布「串味」。release 取 发布清单(<site_root>/release-manifest.json)的 release_id; dev 无清单时回退构建信息(git describe 含 dirty 标记)。
init_tracing 🔒
leptos_options 🔒
Leptos 运行配置,与 Cargo.toml 的 [package.metadata.leptos] 保持一致。
previous_public_dir 🔒
上一发布资源目录(plan §6.7 滚动发布的旧资源保留窗口)。配置了但不是 目录时仅告警停用——保留窗口是兜底增强,不能反过来阻止服务启动。
run
服务端入口。
run_database_bootstrap 🔒
serve_application 🔒
server_addr 🔒
监听地址:IP(默认 127.0.0.1)+ PORT(默认 8080)。解析失败直接退出。
shutdown_signal 🔒
等待 Ctrl-C 或 SIGTERM,触发优雅退出。
site_fallback 🔒
未匹配任何路由的请求:先查站点目录里的静态文件(带 .br 预压缩协商), 其余交给 Leptos 渲染(未知页面由 NotFound 设置 404)。/pkg/ 下缺失的文件 直接返回空 404,不渲染页面。
site_root 🔒
站点根目录(public/ 资源与 pkg/ 前端产物所在)。
spawn_background_tasks_once 🔒
validate_required_configuration 🔒
validate_site_assets 🔒
校验前端产物与服务端二进制配套:hash.txt(与可执行文件同目录)指向的 脚本、WASM 与分包清单必须在 <site_root>/pkg/ 下真实存在,缺失即拒绝启动, 不静默拼出混合版本。debug 与 release 都执行。