fix: fence concurrent ZIP archive builds

This commit is contained in:
237899745
2026-07-26 05:47:19 +08:00
parent 037e83e92f
commit 923ba495c4
16 changed files with 777 additions and 70 deletions

View File

@@ -17,6 +17,9 @@ pub struct Config {
pub worker_task_concurrency: u32,
pub worker_concurrency: u32,
pub image_processing_concurrency: u32,
pub zip_build_concurrency: u32,
pub zip_max_entries: u32,
pub zip_max_uncompressed_bytes: u64,
pub jwt_secret: String,
pub jwt_expiry_hours: i64,
@@ -81,6 +84,15 @@ impl Config {
.map(|v| v.get() as u32)
.unwrap_or(4)
});
let zip_build_concurrency = env_u32("ZIP_BUILD_CONCURRENCY")
.filter(|value| *value > 0)
.unwrap_or(2);
let zip_max_entries = env_u32("ZIP_MAX_ENTRIES")
.filter(|value| *value > 0)
.unwrap_or(200);
let zip_max_uncompressed_bytes = env_u64("ZIP_MAX_UNCOMPRESSED_BYTES")
.filter(|value| *value > 0)
.unwrap_or(2 * 1024 * 1024 * 1024);
let jwt_secret = env_string("JWT_SECRET")
.ok_or_else(|| AppError::new(ErrorCode::InvalidRequest, "缺少环境变量 JWT_SECRET"))?;
@@ -140,6 +152,9 @@ impl Config {
worker_task_concurrency,
worker_concurrency,
image_processing_concurrency,
zip_build_concurrency,
zip_max_entries,
zip_max_uncompressed_bytes,
jwt_secret,
jwt_expiry_hours,
api_key_pepper,